#include<bits/stdc++.h>
using namespace std;
bool dt[1001][1001];
bool vis[1001][1001];
int pa[100002][2];
int n,m,l;
int ans[1001][1001];
int dfs(int nx,int ny,int last){
if(nx>=1&&ny>=1&&nx<=n&&ny<=n&&vis[nx][ny]==0&&last!=dt[nx][ny])
{
l++;
pa[l][0]=nx,pa[l][1]=ny;
vis[nx][ny]=1;
dfs(nx+1,ny,dt[nx][ny]);
dfs(nx-1,ny,dt[nx][ny]);
dfs(nx,ny+1,dt[nx][ny]);
dfs(nx,ny-1,dt[nx][ny]);
}
}
int main()
{ ios::sync_with_stdio(0);
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int w=1;w<=n;w++)
{
char s;
cin>>s;
if(s=='1')dt[i][w]=1;
else dt[i][w]=0;
}
int p1,p2;
for(int i=1;i<=m;i++){
cin>>p1>>p2;
if(vis[p1][p2]==0){
l=0;
dfs(p1,p2,-1);
for(int o=1;o<=l;o++)
ans[pa[o][0]][pa[o][1]]=l;
}
cout<<ans[p1][p2]<<endl;
}
return 0;
}