#include<iostream>
using namespace std;
int n,m;
string a1[1000];
short book[1001][1001];
short fxx[]={1,-1,0,0};
short fyy[]={0,0,1,-1};
int f[100001];每个连通图的值
long long ans;
int d;
void dfs(int x,int y){
for(int i=0;i<4;i++){
int xx=fxx[i]+x,yy=fyy[i]+y;
if(xx>=0&&xx<n&&yy>=0&&yy<n)
if(a1[xx][yy]!=a1[x][y]&&book[xx][yy]==0){
f[d]++;
book[xx][yy]=d;
dfs(xx,yy);
}
}
}
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>a1[i];
}
for(int i=0;i<m;i++){
int x,y;
cin>>x>>y;
x--;y--;
if(book[x][y]==0){
d++;
ans=0;
book[x][y]=d;
f[d]++;
dfs(x,y);
cout<<f[book[x][y]]<<endl;
}else cout<<f[book[x][y]]<<endl;
}
return 0;
}