#include<iostream>
#include<cstdio>
using namespace std;
int sum1[1000001];
int x1[1000001],y1[1000001];
long long n,m,i,j,x,y,x3,y3,t,cnt,l,r,zc1,zc2;
int x2[5]={0,1,-1,0,0};
int y2[5]={0,0,0,1,-1};
long long map[2010][2010],be[2010][2010];
bool flag[2010][2010];
char c;
int main(){
cin>>n>>m;
getchar();
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
c=getchar();
map[i][j]=c-'0';
}
getchar();
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if(be[i][j]==0){
cnt++;
l=1;r=1;
x1[l]=i;y1[l]=j;
flag[i][j]=true;
be[i][j]=cnt;
sum1[cnt]++;
while(l<=r){
x=x1[l];y=y1[l];
for(t=1;t<=4;t++){
x3=x+x2[t];
y3=y+y2[t];
if(x3>=1&&y3>=1&&x3<=n&&y3<=n&&map[x][y]+map[x3][y3]==1&&!flag[x3][y3]){
be[x3][y3]=be[x][y];
sum1[cnt]++;
r++;
x1[r]=x3;y1[r]=y3;
flag[x3][y3]=true;
}
}
l++;
}
}
}
}
for(i=1;i<=m;i++){
cin>>zc1>>zc2;
printf("%d\n",sum1[be[zc1][zc2]]);
}
return 0;
}```