#include<bits/stdc++.h>
using namespace std;
#define int long long
#define re register
const int N=1005;
int n,m;
int a[N][N];
int tmp;
int vis[N][N];
int me[100005];
int dx[5]={0,1,0,-1,0},dy[5]={0,0,1,0,-1};
void dfs(int x,int y,int q){
vis[x][y]=q,tmp++;
for(re int i=1;i<=4;i++){
int nx=dx[i]+x,ny=dy[i]+y;
if(nx<1||nx>n||ny<1||ny>n||vis[nx][ny]!=-1||a[nx][ny]==a[x][y])
continue;
dfs(nx,ny,q);
}
}
signed main(){
std::ios::sync_with_stdio(0);
std::cin.tie(0);
cin>>n>>m;
for(re int i=1;i<=n;i++)
for(re int j=1;j<=n;j++)
scanf("%1lld",&a[i][j]);
memset(vis,-1,sizeof(vis));
for(re int i=1,x,y;i<=m;i++){
cin>>x>>y;
if(vis[x][y]!=-1)
cout<<me[vis[x][y]]<<"\n";
else{
tmp=0;
dfs(x,y,i);
me[i]=tmp;
cout<<tmp<<"\n";
}
}
return 0;
}