#include <iostream> #include <queue> using namespace std; int n, m, maxim, i, j, D[102][102], xf, yf; char a[102][102]; int dx[]={0, 1}; int dy[]={1, 0}; queue<int> cx, cy; int main() { cin>>n>>m; for(i=1; i<=n; i++) { for(j=1; j<=m; j++) { cin>>a[i][j]; D[i][j]=18181818; } } if(a[1][1]=='&') { cout<<0; return 0; } cx.push(1); cy.push(1); D[1][1]=1; while(!cx.empty()) { xf=cx.front(); cx.pop(); yf=cy.front(); cy.pop(); for(i=0; i<2; i++) { if(D[xf][yf]+1<D[xf+dx[i]][yf+dy[i]] && a[xf+dx[i]][yf+dy[i]]!='&') { D[xf+dx[i]][yf+dy[i]]=D[xf][yf]+1; cx.push(xf+dx[i]); cy.push(yf+dy[i]); } } } for(i=1; i<=n; i++) { for(j=1; j<=n; j++) { if(D[i][j]>maxim && D[i][j]!=18181818) { maxim=D[i][j]; } } } cout<<maxim; }