#include<bits/stdc++.h>
using namespace std;
long long n,m,ans=1,tc[1010][1010],flag[10010][10010];
char c;
int dx[]{0,0,0,-1,1};
int dy[]{0,1,-1,0,0};
void dfs(int x,int y){
if(x<1||x>n||y<1||y>n||flag[x][y]==1)return;
flag[x][y]=1;
for(int i=1;i<=4;++i){
int tx=x+dx[i],ty=y+dy[i];
if(tc[x][y]==0){
if(tc[tx][ty]==1){
ans++;
flag[tx][ty]=1;
dfs(tx,ty);
}
}
if(tc[x][y]==1){
if(tc[tx][ty]==0){
ans++;
flag[tx][ty]=1;
dfs(tx,ty);
}
}
}
}
int main(){
int i,j,a,b;
scanf("%d%d",&n,&m);
for(i=1;i<=n;++i)
for(j=1;j<=n;++j){
cin>>c;
tc[i][j]=c-'0';
}
for(i=1;i<=m;++i){
scanf("%d%d",&a,&b);
dfs(a,b);
printf("%d\n",ans);
ans=1;
}
return 0;
}