#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
bool a[1000][1000];
bool vis[1000][1000];
int n,m;
int ans=0;
void dfs(int x,int y,bool mov){
if(vis[x][y]==1)return;
if(a[x][y]==mov)return;
if(x<1||x>n||y<1||y>n)return;
vis[x][y]=1;
ans++;
bool now=a[x][y];
dfs(x-1,y,now);
dfs(x,y-1,now);
dfs(x+1,y,now);
dfs(x,y+1,now);
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j){
scanf("%1d",&a[i][j]);
}
}
while(m--){
int x,y;
cin>>x>>y;
ans=0;
memset(vis,0,sizeof(vis));
dfs(x,y,!a[x][y]);
cout<<ans<<endl;
}
return 0;
}