#include<bits/stdc++.h>
using namespace std;
#define int long long
const int dx[]={0,0,1,-1},dy[]={1,-1,0,0};
int n,q,vis[1005][1005],sum=0;
char s[1005][1005];
bool check(int l,int r,int x,int y){
if(x<1||x>n||y<1||y>n||s[l][r]==s[x][y]||vis[x][y]==1){
return false;
}
return true;
}
void dfs(int x,int y,int k){
k++;
for(int i=0;i<4;i++){
int nx=x+dx[i],ny=y+dy[i];
if(check(x,y,nx,ny)==true){
vis[nx][ny]=1;
dfs(nx,ny,k+1);
vis[nx][ny]=0;
}
}
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(NULL),cout.tie(NULL);
cin>>n>>q;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>s[i][j];
}
}
while(q--){
memset(vis,0,sizeof(vis));
int x,y;
cin>>x>>y;
dfs(x,y,1);
cout<<sum<<"\n";
}
return 0;
}