#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,vis[1001][1001],cnt,dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}},x,y;
struct node{
int x,y;
};
char s[1001][1001];
int bfs(){
cnt=0;
memset(vis,0,sizeof(vis));
node a,b;
queue<node>q;
a.x=x;
a.y=y;
q.push(a);
while(!q.empty()){
cnt++;
a=q.front();
vis[a.x][a.y]=1;
q.pop();
for(int i=0;i<4;i++){
b.x=a.x+dir[i][0];
b.y=a.y+dir[i][1];
if(b.x<1||b.x>n||b.y<1||b.y>n||vis[b.x][b.y]||s[a.x][a.y]==s[b.x][b.y]){
continue;
}
q.push(b);
}
}
return cnt;
}
signed main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
scanf("%s",s[i]);
}
for(int i=1;i<=m;i++){
cin>>x>>y;
cout<<bfs()<<endl;
}
return 0;
}