#include<bits/stdc++.h>
using namespace std;
int n,m;
int area[1005][1005];
bool vis[1005][1005];
int f[1000005];
int tx[4]={1,0,-1,0};
int ty[4]={0,1,0,-1};
struct beta{
int x,y;
};
int main (){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
char c;
cin>>c;
area[i][j]=int(c)-'0';
}
}
int S=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(vis[i][j]==0){
S++;
int sum=1;
memset(vis,0,sizeof(vis));
queue<beta> q;
q.push(beta{i,j});
vis[i][j]=S;
while(!q.empty()){
beta temp=q.front();
q.pop();
for(int k=0;k<4;k++){
int nx=tx[k]+temp.x;
int ny=ty[k]+temp.y;
if(nx>=1&&nx<=n&&ny>=1&&ny<=n&&vis[nx][ny]==0&&area[nx][ny]!=area[temp.x][temp.y]){
sum++;
vis[nx][ny]=S;
q.push(beta{nx,ny});
}
}
}
f[S]=sum;
}
}
}
while(m--){
int sx,sy;
cin>>sx>>sy;
cout<<f[vis[sx][sy]]<<endl;
}
return 0;
}
WA了,dalao们能看看吗