#include #include using namespace std; int di[]={0,1}; int dj[]={1,0}; int c[40001], li=1, ls; int cvida(){ return li>ls; } void put(int x){ ls++; c[ls]=x; } void get(int &x){ x=c[li]; li++; } int main(){ int m,n,i,j, dmax=0, x; int d[101][128]={{0}}; int v[101][128]={{0}}; char a[101][128]={{0}}; cin>>n>>m; for(i=0;i>a[i]; x=0; put(x); v[0][0]=1; d[0][0]=1; while(!cvida()){ get(x); i=x%128; j=x/128; for(int k=0;k<2;++k){ int ni=i+di[k]; int nj=j+dj[k]; if(ni<0 || ni==n || nj<0 || nj==m || v[ni][nj] || a[ni][nj]=='&') continue; put(ni+nj*128); v[ni][nj]=1; d[ni][nj]=d[i][j]+1; if(dmax