qyh_qianyuheng2012 @ 2024-12-27 23:52:19
#include<bits/stdc++.h>
using namespace std;
bool b[1005][1005];
char a[1005][1005];
int n,m,s[100005];
int maxn;
void f(int x,int y,int cnt,char z){
if(a[x][y]==z&&cnt>1)
return;
if(x>n||y>n||x<1||y<1||b[x][y])
return;
b[x][y]=1;
maxn=max(maxn,cnt);
f(x-1,y,cnt+1,a[x][y]);
f(x,y-1,cnt+1,a[x][y]);
f(x+1,y,cnt+1,a[x][y]);
f(x,y+1,cnt+1,a[x][y]);
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>a[i][j];
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++)
b[j][k]=0;
int x,y;
maxn=0;
scanf("%d%d",&x,&y);
f(x,y,1,a[x][y]);
s[i]=maxn;
}
for(int i=1;i<=m;i++)
printf("%d\n",s[i]);
return 0;
}