全都是TLE的点
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=1e3+3;
char a[maxn][maxn];
int vis[maxn][maxn],ans=0;
int dx[]={1,-1,0,0};
int dy[]={0,0,1,-1};
int n,T;
bool check(int x,int y)
{
return x<=n && x>=1 && y<=n && y>=1;
}
void dfs(int x,int y)
{
ans++;
vis[x][y]=1;
for(int i=0;i<4;i++)
{
int tx=x+dx[i];
int ty=y+dy[i];
if(check(tx,ty) && vis[tx][ty]==0)
{
if((a[x][y]=='1' && a[tx][ty]=='0') || (a[x][y]=='0' && a[tx][ty]=='1')) dfs(tx,ty);
}
}
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>T;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>a[i][j];
}
}
int a,b;
while(T--)
{
ans=0;
memset(vis,0,sizeof(vis));
cin>>a>>b;
dfs(a,b);
cout<<ans<<endl;
}
return 0;
}