//#pragma GCC optimize("Ofast,no-stack-protector")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx")
//#pragma GCC target("avx,tune=native")
// Anand Jaisingh
#include<bits/stdc++.h>
using namespace std;
typedef complex<double> base;
typedef long double ld;
typedef long long ll;
#define pb push_back
#define pii pair<int,int>
#define pll pair< ll , ll >
#define vi vector<int>
#define vvi vector< vi >
const int maxn=(int)(205);
const ll mod=(ll)(1e9+7);
int a[maxn];
string s[maxn];
int odd1[maxn][maxn],odd2[maxn][maxn],even1[maxn][maxn],even2[maxn][maxn];
int vals[maxn*maxn];
int get(int i,int j,int side)
{
int val1=odd1[i][j]-odd1[i][j-side]-odd1[i-side][j]+odd1[i-side][j-side];
int val2=even2[i][j]-even2[i][j-side]-even2[i-side][j]+even2[i-side][j-side];
int val3=odd2[i][j]-odd2[i][j-side]-odd2[i-side][j]+odd2[i-side][j-side];
int val4=even1[i][j]-even1[i][j-side]-even1[i-side][j]+even1[i-side][j-side];
return min(val1+val2,val3+val4);
}
int main()
{
ios_base::sync_with_stdio(0);cin.tie(0);
int n,m;cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>s[i];
s[i]="x"+s[i];
}
for(int i=1;i<=n;i++)
{
int curr1=0,curr2=0;
for(int j=1;j<=m;j++)
{
if(j%2==1 && s[i][j]!='0')
{
curr1++;
}
if(j%2==0 && s[i][j]!='1')
{
curr1++;
}
if(j%2==1 && s[i][j]!='1')
{
curr2++;
}
if(j%2==0 && s[i][j]!='0')
{
curr2++;
}
if(i%2==1)
{
odd1[i][j]=odd1[i-1][j]+curr1;
odd2[i][j]=odd2[i-1][j]+curr2;
even1[i][j]=even1[i-1][j];
even2[i][j]=even2[i-1][j];
}
else
{
odd1[i][j]=odd1[i-1][j];
odd2[i][j]=odd2[i-1][j];
even1[i][j]=even1[i-1][j]+curr1;
even2[i][j]=even2[i-1][j]+curr2;
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
int curr=min(i,j);
for(int k=1;k<=curr;k++)
{
int now=get(i,j,k);
vals[now]=max(vals[now],k);
}
}
}
for(int i=1;i<=(n*m);i++)
{
vals[i]=max(vals[i],vals[i-1]);
}
int q;cin>>q;
while(q>0)
{
int x;cin>>x;
x=min(x,n*m);
cout<<vals[x]<<endl;
q--;
}
return 0;
}
Ly8jcHJhZ21hIEdDQyBvcHRpbWl6ZSgiT2Zhc3Qsbm8tc3RhY2stcHJvdGVjdG9yIikKLy8jcHJhZ21hIEdDQyB0YXJnZXQoInNzZSxzc2UyLHNzZTMsc3NzZTMsc3NlNCxwb3BjbnQsYWJtLG1teCIpCi8vI3ByYWdtYSBHQ0MgdGFyZ2V0KCJhdngsdHVuZT1uYXRpdmUiKQovLyBBbmFuZCBKYWlzaW5naAoKI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGNvbXBsZXg8ZG91YmxlPiBiYXNlOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgcGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBwbGwgcGFpcjwgbGwgLCBsbCA+CiNkZWZpbmUgdmkgdmVjdG9yPGludD4KI2RlZmluZSB2dmkgdmVjdG9yPCB2aSA+Cgpjb25zdCBpbnQgbWF4bj0oaW50KSgyMDUpOwpjb25zdCBsbCBtb2Q9KGxsKSgxZTkrNyk7CmludCBhW21heG5dOwpzdHJpbmcgc1ttYXhuXTsKaW50IG9kZDFbbWF4bl1bbWF4bl0sb2RkMlttYXhuXVttYXhuXSxldmVuMVttYXhuXVttYXhuXSxldmVuMlttYXhuXVttYXhuXTsKaW50IHZhbHNbbWF4biptYXhuXTsKCmludCBnZXQoaW50IGksaW50IGosaW50IHNpZGUpCnsKICAgIGludCB2YWwxPW9kZDFbaV1bal0tb2RkMVtpXVtqLXNpZGVdLW9kZDFbaS1zaWRlXVtqXStvZGQxW2ktc2lkZV1bai1zaWRlXTsKCiAgICBpbnQgdmFsMj1ldmVuMltpXVtqXS1ldmVuMltpXVtqLXNpZGVdLWV2ZW4yW2ktc2lkZV1bal0rZXZlbjJbaS1zaWRlXVtqLXNpZGVdOwoKICAgIGludCB2YWwzPW9kZDJbaV1bal0tb2RkMltpXVtqLXNpZGVdLW9kZDJbaS1zaWRlXVtqXStvZGQyW2ktc2lkZV1bai1zaWRlXTsKCiAgICBpbnQgdmFsND1ldmVuMVtpXVtqXS1ldmVuMVtpXVtqLXNpZGVdLWV2ZW4xW2ktc2lkZV1bal0rZXZlbjFbaS1zaWRlXVtqLXNpZGVdOwoKICAgIHJldHVybiBtaW4odmFsMSt2YWwyLHZhbDMrdmFsNCk7Cn0KCmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApOwoKICAgIGludCBuLG07Y2luPj5uPj5tOwoKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKQogICAgewogICAgICAgIGNpbj4+c1tpXTsKCiAgICAgICAgc1tpXT0ieCIrc1tpXTsKICAgIH0KCiAgICBmb3IoaW50IGk9MTtpPD1uO2krKykKICAgIHsKICAgICAgICBpbnQgY3VycjE9MCxjdXJyMj0wOwoKICAgICAgICBmb3IoaW50IGo9MTtqPD1tO2orKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKGolMj09MSAmJiBzW2ldW2pdIT0nMCcpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGN1cnIxKys7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmKGolMj09MCAmJiBzW2ldW2pdIT0nMScpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGN1cnIxKys7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmKGolMj09MSAmJiBzW2ldW2pdIT0nMScpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGN1cnIyKys7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmKGolMj09MCAmJiBzW2ldW2pdIT0nMCcpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGN1cnIyKys7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmKGklMj09MSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgb2RkMVtpXVtqXT1vZGQxW2ktMV1bal0rY3VycjE7CgogICAgICAgICAgICAgICAgb2RkMltpXVtqXT1vZGQyW2ktMV1bal0rY3VycjI7CgogICAgICAgICAgICAgICAgZXZlbjFbaV1bal09ZXZlbjFbaS0xXVtqXTsKCiAgICAgICAgICAgICAgICBldmVuMltpXVtqXT1ldmVuMltpLTFdW2pdOwogICAgICAgICAgICB9CgogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG9kZDFbaV1bal09b2RkMVtpLTFdW2pdOwoKICAgICAgICAgICAgICAgIG9kZDJbaV1bal09b2RkMltpLTFdW2pdOwoKICAgICAgICAgICAgICAgIGV2ZW4xW2ldW2pdPWV2ZW4xW2ktMV1bal0rY3VycjE7CgogICAgICAgICAgICAgICAgZXZlbjJbaV1bal09ZXZlbjJbaS0xXVtqXStjdXJyMjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBmb3IoaW50IGk9MTtpPD1uO2krKykKICAgIHsKICAgICAgICBmb3IoaW50IGo9MTtqPD1tO2orKykKICAgICAgICB7CiAgICAgICAgICAgIGludCBjdXJyPW1pbihpLGopOwoKICAgICAgICAgICAgZm9yKGludCBrPTE7azw9Y3VycjtrKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGludCBub3c9Z2V0KGksaixrKTsKCiAgICAgICAgICAgICAgICB2YWxzW25vd109bWF4KHZhbHNbbm93XSxrKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBmb3IoaW50IGk9MTtpPD0obiptKTtpKyspCiAgICB7CiAgICAgICAgdmFsc1tpXT1tYXgodmFsc1tpXSx2YWxzW2ktMV0pOwogICAgfQoKICAgIGludCBxO2Npbj4+cTsKCiAgICB3aGlsZShxPjApCiAgICB7CiAgICAgICAgaW50IHg7Y2luPj54OwoKICAgICAgICB4PW1pbih4LG4qbSk7CgogICAgICAgIGNvdXQ8PHZhbHNbeF08PGVuZGw7CgogICAgICAgIHEtLTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=