#include using namespace std; int n,m,a[101][101],i,j,b[101][101]; char x; int q[100001][2]; int verif(int x,int y) { return (x<0||y<0||x>n||y>m || a[x][y]==-1); } void lee(int x,int y) { int st,dr,xx,yy; q[0][0]=x; q[0][1]=y; st=dr=0; b[1][1]=1; while(st<=dr) { x=q[st][0]; y=q[st++][1]; xx=x+1; yy=y; if( verif(xx,yy)) continue; if(b[xx][yy]>n>>m; for(i=1;i<=n;++i) for(j=1;j<=m;++j) { f>>x; if(x=='.') a[i][j]=0; else a[i][j]=-1; } lee(1,1); int max1=0; for(i=1;i<=n;++i) for(j=1;j<=m;++j) if (b[i][j]>max1) max1=b[i][j]; for(i=1;i<=n;++i) for(j=1;j<=m;++j) b[i][j]=0; lee(n,m); for(i=1;i<=n;++i) for(j=1;j<=m;++j) if (b[i][j]>max1) max1=b[i][j]; for(i=1;i<=n;++i) for(j=1;j<=m;++j) b[i][j]=0; lee(n,1); for(i=1;i<=n;++i) for(j=1;j<=m;++j) if (b[i][j]>max1) max1=b[i][j]; for(i=1;i<=n;++i) for(j=1;j<=m;++j) b[i][j]=0; lee(1,n); for(i=1;i<=n;++i) for(j=1;j<=m;++j) if (b[i][j]>max1) max1=b[i][j]; g<