#include<bits/stdc++.h>
using namespace std;
const int N = 1e3+10;
int n,m;
char g[N][N];
int d[N][N];
int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};
int res[N][N];
typedef pair<int,int> PII;
int bfs(int ix,int jy)
{
int ans1=0;
queue<PII> q;
queue<PII> ans;
q.push({ix,jy});
memset(d,-1,sizeof d);
d[ix][jy]=0;
while(q.size())
{
ans1++;
auto s=q.front();
ans.push(s);
q.pop();
for(int i=0;i<4;i++)
{
int x = s.first+dx[i],y=s.second+dy[i];
int num=(g[s.first][s.second]-'0' + g[x][y] - '0');
if(x>0&&x<=n&&y>0&&y<=n&&d[x][y]==-1&&num==1)
{
d[x][y]=0;
q.push({x,y});
}
}
}
while(ans.size())
{
auto a1 = ans.front();
ans.pop();
res[a1.first][a1.second]=ans1;
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cin>>g[i][j];
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(!res[i][j])
{
bfs(i,j);
}
}
}
while(m--)
{
int i,j;
scanf("%d%d",&i,&j);;
printf("%d\n",res[i][j]);
}
}