#include <iostream>
using namespace std;
long long m,n,g,x,y,a,b,low=501,up,d;
long long s,k=1e9;
char c;
int f[510][510];
struct Node{
long long x,y;
}l[500100];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>c;
if(c=='x' && f[i][j]==0){f[i][j]=1;d++;l[d].x=i;l[d].y=j;}
}
}
cin>>g;
for(int t=1;t<=g;t++){
cin>>x>>y;
if(f[x][y]==1){cout<<0<<endl;continue;}
k=1e9;
for(int i=1;i<=d;i++){
s=(x-l[i].x)*(x-l[i].x)+(y-l[i].y)*(y-l[i].y);
k=min(k,s);
}
f[x][y]=1;
d++;
l[d].x=x;l[d].y=y;
cout<<k<<endl;
}
return 0;
}