#include using namespace std; struct co { int x,y,d; }; co Coada[5000],X; int T[105][105],maxim; int n,m; int main() { int i,j; char c; cin>>n>>m; cin.get(c); for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { cin.get(c); if(c=='.') T[i][j]=0; else T[i][j]=-1; } cin.get(c); } for(i=0;i<=n+1;i++) T[i][0]=T[i][m+1]=-1; for(i=0;i<=m+1;i++) T[0][i]=T[n+1][i]=-1; if(T[1][1]==-1){ cout<<0; return 0;} int ic=1; int sc=1; T[1][1]=1; Coada[1].x=1; Coada[1].y=1; Coada[1].d=1; while(ic<=sc) { X=Coada[ic]; if(T[X.x+1][X.y]==0) { T[X.x+1][X.y]=X.d+1; sc++; Coada[sc].x=X.x+1; Coada[sc].y=X.y; Coada[sc].d=X.d+1; } if(T[X.x][X.y+1]==0) { T[X.x][X.y+1]=X.d+1; sc++; Coada[sc].x=X.x; Coada[sc].y=X.y+1; Coada[sc].d=X.d+1; } ic++; } for(i=1;i<=n;i++) for(j=1;j<=m;j++) if(T[i][j]>maxim) maxim=T[i][j]; cout<