#include<bits/stdc++.h>
using namespace std;
bool a[1001][1001];
queue<pair<int,int>> q;
int dx[4]={0,1,0,-1};
int dy[4]={-1,0,1,0};
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
string t;
cin>>t;
for(int j=0;j<n;j++)
{
if(t[j]=='0')
{
a[i][j+1]=0;
}
else
{
a[i][j+1]=1;
}
}
}
memset(a,true,sizeof(a));
for(int i=1;i<=m;i++)
{
int s=1;
int x,y;
cin>>x>>y;
q.push(make_pair(x,y));
while(!q.empty())
{
int xx=q.front().first;
int yy=q.front().second;
for(int j=0;j<4;j++)
{
int u=xx+dx[j];
int v=yy+dy[j];
if(u>n||u<1||v<1||v>n||a[u][v]||a[u][v]==a[xx][xx])
{
continue;
}
a[u][v]=1;
q.push(make_pair(u,v));
s++;
}
q.pop();
}
cout<<s<<endl;
}
return 0;
}
//memset(flag,true,sizeof(flag));
求大佬找错,谢谢!