#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
int n,q,x,y,ans;
char a[N][N];bool f[N][N];
int fx[5]={0,1,-1,0,0};
int fy[5]={0,0,0,1,-1};
int dfs(int x,int y,char c){
for(int i=1;i<=4;i++){
int tx=x+fx[i],ty=y+fy[i];
if(tx>=1&&ty>=1&&tx<=n&&ty<=n&&f[tx][ty]==false){
if(c=='0'&&a[tx][ty]=='1'){
ans++;
f[tx][ty]=true;
dfs(tx,ty,a[tx][ty]);
}
if(c=='1'&&a[tx][ty]=='0'){
ans++;
f[tx][ty]=true;
dfs(tx,ty,a[tx][ty]);
}
}
}
return ans;
}
int main(){
cin>>n>>q;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
while(q--){
cin>>x>>y;
memset(f,false,sizeof(f));
ans=1;
f[x][y]=true;
cout<<dfs(x,y,a[x][y])<<"\n";
}
return 0;
}