#include #include #include #include #include #include #include using namespace std; const int maxn=510; int n,m,q; char a[maxn][maxn]; char backup[maxn][maxn]; int color[maxn][maxn]; int le[]={-1,0,1,0}; int ri[]={0,1,0,-1}; struct pos{ int x,y; pos(int x=0,int y=0):x(x),y(y) {} }p[maxn*maxn]; inline bool in(int x,int y){ return x>=0&&y>=0&&x<=n&&y qu; for(int i=0;i=2)){ mid=(l+r)/2; if(bfs(mid)) l=mid; else r=mid; } if(!bfs(l)) printf("%d\n", l+1); else if(!bfs(r)) printf("%d\n", r+1); else printf("-1\n"); } return 0; }