刚学BFS的蒟蒻……………
#include<bits/stdc++.h>
using namespace std;
int n,m,cnt,x,y;
char c[1005][1005];
int f[1005][1005];
int fx[5]={1,-1,0,0};
int fy[5]={0,0,-1,1};
struct node{
int x;
int y;
};
void bfs(int x,int y){
queue<node> q;
f[x][y]=1;
q.push({x,y});
while(!q.empty()){
node z=q.front();
q.pop();
for(int i=0;i<4;i++){
int sx=z.x+fx[i],sy=z.y+fy[i];
// cout<<sx<<' '<<sy<<endl;
if(sx>=1&&sx<=n&&sy>=1&&sy<=m&&f[sx][sy]==0){
if((c[sx][sy]=='1'&&c[z.x][z.y]=='0')||(c[sx][sy]=='0'&&c[z.x][z.y]=='1')){
// cout<<" "<<sx<<' '<<sy<<endl;
f[sx][sy]=1;
cnt++;
q.push({sx,sy});
}
}
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>c[i][j];
}
}
for(int i=1;i<=m;i++){
cnt=1;
cin>>x>>y;
memset(f,0,sizeof(f));
f[x][y]=1;
bfs(x,y);
cout<<cnt<<endl;
}
return 0;
}