1#点MLE,3#和11#TLE,求大佬帮忙调试
#include<cstdio>
#define N 1000
using namespace std;
int a[N][N];
int c[N][N];
bool b[N][N];
int z;
void fun(int n,int x,int y)
{
z++;
b[x][y]=true;
if(x>0 && a[x-1][y]!=a[x][y] && b[x-1][y]==false)
fun(n,x-1,y);
if(y>0 && a[x][y-1]!=a[x][y] && b[x][y-1]==false)
fun(n,x,y-1);
if(x<n-1 && a[x+1][y]!=a[x][y] && b[x+1][y]==false)
fun(n,x+1,y);
if(y<n-1 && a[x][y+1]!=a[x][y] && b[x][y+1]==false)
fun(n,x,y+1);
}
int main()
{
int n,m,i,j,x,y;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
scanf("%1d",&(a[i][j]));
c[i][j]=0x7fffffff;
}
for(;m;m--)
{
scanf("%d%d",&x,&y);
if(c[x-1][y-1]==0x7fffffff)
{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
b[i][j]=false;
z=0;
fun(n,x-1,y-1);
printf("%d\n",z);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(b[i][j])
c[i][j]=z;
}
else
printf("%d\n",c[x-1][y-1]);
}
return 0;
}