#include<bits/stdc++.h>
using namespace std;
int h=0,n,m,z[1002][1002],map1[1002][1002];
bool s[1002][1002];
char ss[1003];
int num[100001],dy[5]={0,-1,0,1,0},dx[5]={0,0,-1,0,1};
void bfs(int y,int x)
{
z[y][x]=h;
num[h]++;
s[y][x]=1;
for(int i=1;i<=4;i++)
{
int a=y+dy[i],b=x+dx[i];
if(a>0&&a<=n&&b>0&&b<=n&&((!map1[y][x])==map1[a][b])&&(!s[a][b]))
bfs(a,b);
}
return ;
}
int main()
{
scanf("%d%d",&n,&m);
gets(ss);
for(int i=1;i<=n;i++)
{
cin>>ss;
for(int z=0;z<n;z++)
map1[i][z+1]=ss[z]-'0';
}
for(int i=1;i<=n;i++)
for(int z=1;z<=n;z++)
if(!s[i][z])
{h++,bfs(i,z);}
for(int i=1;i<=m;i++)
{
int k,l;
scanf("%d%d",&k,&l);
printf("%d\n",num[z[k][l]]);
}
}