#include<bits/stdc++.h>
using namespace std;
int n,m,a[1001][1001],x,y,f[1001][1001];
bool b[1001][1001];
int head,tail,q[1000001][3];
int dir[4][2]={0,1,0,-1,1,0,-1,0};
char ch;
int main()
{
cin>>n>>m;
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
{
cin>>ch;
if(ch==48)
a[i][j]=0;else
a[i][j]=1;
}
for(int i=1;i<=m;++i)
{
cin>>x>>y;
if(f[x][y])
{
printf("%d\n",f[x][y]);
continue;
}
head=0,tail=1;
memset(q,0,sizeof(q));
q[1][0]=a[x][y];
q[1][1]=x;
q[1][2]=y;
while(head<tail)
{
++head;
for(int j=0;j<4;++j)
{
int nh=q[head][1]+dir[j][0];
int nl=q[head][2]+dir[j][1];
if(nh<=n&&nh>0&&nl<=n&&nl>0&&(a[nh][nl]^q[head][0]==1)&&!b[nh][nl])
{
b[nh][nl]=true;
++tail;
q[tail][0]=a[nh][nl];
q[tail][1]=nh;
q[tail][2]=nl;
}
}
}
if(tail>1)
{
printf("%d\n",tail-1);
for(int j=1;j<=tail;++j)
f[q[j][1]][q[j][2]]=tail-1;
}else
{
printf("1\n");
f[x][y]=1;
}
}
return 0;
}