#include<bits/stdc++.h>
#include <sstream>
using namespace std;
int n,m,c,l,k;
char a[1002][1002] = {'*'};
void bfs(int x,int y,int n){
if(n==-1){
if(a[x][y]=='1'){
a[x][y] = '-';
c++;
bfs(x,y+1,1);
bfs(x,y-1,1);
bfs(x-1,y,1);
bfs(x+1,y,1);
}
else if(a[x][y]=='0'){
a[x][y] = '-';
c++;
bfs(x,y+1,0);
bfs(x,y-1,0);
bfs(x-1,y,0);
bfs(x+1,y,0);
}
}
else if(n==0&&a[x][y]=='1'){
a[x][y] = '-';
c++;
bfs(x,y+1,1);
bfs(x,y-1,1);
bfs(x-1,y,1);
bfs(x+1,y,1);
}
else if(n==1&&a[x][y]=='0'){
a[x][y] = '-';
c++;
bfs(x,y+1,0);
bfs(x,y-1,0);
bfs(x-1,y,0);
bfs(x+1,y,0);
}
else if(n==3&&a[x][y]=='-'){
a[x][y] = c;
bfs(x,y+1,3);
bfs(x,y-1,3);
bfs(x-1,y,3);
bfs(x+1,y,3);
}
}
int main(){
cin>>n>>m;
for(int i = 1;i<=n;i++){
for(int j = 1;j<=n;j++){
cin>>a[i][j];
}
}
for(int i = 1;i<=n;i++){
for(int j = 1;j<=n;j++){
c = 0;
if(a[i][j]=='0' || a[i][j]=='1'){
bfs(i,j,-1);
bfs(i,j,3);
}
}
}
for(int i = 0;i<m;i++){
cin>>l>>k;
cout<<(int)a[l][k]<<endl;
}
return 0;
}