#include<bits/stdc++.h>
using namespace std;
bool v[1006][1006]={0};
char maps[1006][1006];
int n,m,x,y,x1,y2,a[1000065],b[1000065],ans[100061];
int f[4]={0,1,0,-1},l[4]={1,0,-1,0};
int bfs(int t)
{
int i,head=0,tail=1,sss=1;
a[1]=x1;
b[1]=y2;
while(head!=tail)
{
head++;
for(i=0;i<4;i++)
{
x=a[head]+f[i];
y=b[head]+l[i];
if(x>0&&y>0&&x<=n&&y<=n&&maps[x][y]!=maps[a[head]][b[head]]&&v[x][y]==0)
{
v[x][y]=t;
tail++;
sss++;
a[tail]=x;
b[tail]=y;
}
}
}
return sss;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>maps[i][j];
}
}
for(int i=1;i<=m;i++)
{
cin>>x1>>y2;
if(v[x1][y2]==0)
{
v[x1][y2]=i;
ans[i]=bfs(i);
cout<<ans[i]<<endl;
}
else
{
int t=v[x1][y2];
ans[m]=ans[t];
cout<<ans[m]<<endl;
}
}
return 0;
}