#include #include #include #include #include #include #include #define in cin #define out cout #define abs(x) ((x>0)?(x):(-(x))) #define max(a, b) (a > b ? a : b) #define min(a, b) (a < b ? a : b) #define FOR(i, a, b) for(int i = a; i <= b; ++i) #define DOWNFOR(i, a, b) for(int i = a; i >= b; --i) #define FOREACH(i, t) for (typeof(t.begin()) i = t.begin(); i != t.end(); ++i) #define ll long long using namespace std; const int Nmax = 105; int N,M; int a[Nmax][Nmax]; const int dlin[]={0,1}; const int dcol[]={1,0}; void parc(int i,int j){ for(int k=0;k<=1;k++){ if(a[i+dlin[k]][j+dcol[k]]>=0 && a[i+dlin[k]][j+dcol[k]]>N>>M; FOR(i,1,N){ FOR(j,1,M){ char c; in>>c; if(c=='&') a[i][j]=-1; } } a[1][1]=1; for(int i=1;i<=N;i++) a[i][0]=-1,a[i][M+1]=-1; for(int i=1;i<=M;i++) a[0][i]=-1,a[N+1][i]=-1; if(a[1][1]==-1){ out<<"0\n"; return 0; } parc(1,1); int m=0; FOR(i,1,N){ FOR(j,1,M){ m=max(m,a[i][j]); } } out<