#include<bits/stdc++.h>
using namespace std;
int n,m,cnt,s[1000001],vis[1001][1001],dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}},qx,qy;
char a[1001][1001];
void dfs(int x,int y){
for(int i=0;i<4;i++){
int nx=x+dir[i][0];
int ny=y+dir[i][1];
if(nx<1||ny<1||nx>n||ny>n||a[nx][ny]==a[x][y]||vis[nx][ny])continue;
vis[nx][ny]=cnt;
s[cnt]++;
dfs(nx,ny);
}
}
signed main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
scanf("%s",a[i]);
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(vis[i][j])continue;
vis[i][j]=++cnt;
s[cnt]=1;
dfs(i,j);
}
}
while(m--){
cin>>qx>>qy;
cout<<s[vis[qx][qy]]<<endl;
}
return 0;
}