#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int x[4]={0,0,1,-1};
int y[4]={1,-1,0,0};
int n,m,ans=0,book[10000][10000],book2[10000][10000],path[10000],o=0;
char migong[10000][10000];
bool pd=false;
void dfs(int idx,int idy,char pre){
char pop;
if(pre=='1'){
pop='0';
}else{
pop='1';
}
for(int i=0;i<4;i++){
int dx=idx+x[i];
int dy=idy+y[i];
if(dx<=0||dx>n||dy<=0||dy>n)continue;
if(book[dx][dy]==0&&migong[dx][dy]==pop){
book[dx][dy]=1;
dfs(dx,dy,migong[dx][dy]);
}
}
}
int main(){
cin >>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin >>migong[i][j];
}
}
int xm,ym;
for(int i=0;i<m;i++){
cin >>xm>>ym;
if(book2[xm][ym]!=0){
path[o]=book2[xm][ym];
o++;
continue;
}
dfs(xm,ym,migong[xm][ym]);
if(!pd){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(book[i][j]==1){
ans++;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(book[i][j]==1){
book2[i][j]=ans;
book[i][j]=0;
}
}
}
}
path[o]=ans;
if(ans==0){
path[o]=1;
}
o++;
ans=0;
pd=false;
}
for(int i=0;i<o;i++){
cout <<path[i]<<endl;
}
return 0;
}