#include <algorithm> #include <iostream> #include <fstream> #define pb push_back #define mp make_pair #define ld long double #define ll long long #define ull unsigned long long using namespace std; //#define f cin //#define g cout #define Block -1 //ifstream f("gigel.in"); //ofstream g("gigel.out"); int N,M,a[110][110],b[110][110],sol; void Fill(int i,int j) { a[i][j]=max(a[i][j],1); sol=max(sol,a[i][j]); if(j<N && (a[i][j+1]<a[i][j]+1 || !a[i][j+1]) && a[i][j+1]!=Block) { a[i][j+1]=a[i][j]+1; Fill(i,j+1); } if(i<M && (a[i+1][j]<a[i][j]+1 || !a[i+1][j]) && a[i+1][j]!=Block) { a[i+1][j]=a[i][j]+1; Fill(i+1,j); } } int main() { //freopen("gigel.in","r",stdin); //freopen("gigel.out","w",stdout); scanf("%d %d\n",&M,&N); for(int i=1;i<=M;++i) { char s[111]; scanf("%s\n",&s); for(int j=1;j<=N;++j) { if(s[j-1]=='&')a[i][j]=Block; } } //for(int i=1;i<=M;++i,printf("\n")) //for(int j=1;j<=N;++j)printf("%d",a[i][j]); Fill(1,1); printf("%d\n",sol); return 0; }