#include #define x first #define y second using namespace std; int maxim=0, n, m, a[105][105]; void bord() { for(int i=0;i<=n+1;i++) a[i][0]=a[i][m+1]=-1; for(int i=0;i<=m+1;i++) a[0][i]=a[n+1][i]=-1; } void lee() { queue > q; q.push({1,1}); a[1][1]=1; while(!q.empty()) { pair ar=q.front(); q.pop(); if(a[ar.x][ar.y+1]==0) { a[ar.x][ar.y+1]=a[ar.x][ar.y]+1; if(a[ar.x][ar.y+1]>maxim) maxim=a[ar.x][ar.y+1]; q.push({ar.x, ar.y+1}); } if(a[ar.x+1][ar.y]==0) { a[ar.x+1][ar.y]=a[ar.x][ar.y]+1; if(a[ar.x+1][ar.y]>maxim) maxim=a[ar.x+1][ar.y]; q.push({ar.x+1, ar.y}); } } } int main() { cin>>n>>m; char c; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>c; if(c=='.') a[i][j]=0; else a[i][j]=-1; } } bord(); lee(); cout<