#include<iostream>
#include<string.h>
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<n;++i)
		cin>>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<d[ni][nj])
				dmax=d[ni][nj];
		}
	}
	cout<<dmax;
	return 0;
}