#include <iostream>
#define MAXN 105
using namespace std;

int n,m,mx;
char s[MAXN][MAXN];
bool uz[MAXN][MAXN];

void DFS(int p,int q);

int main()
{
    int i,j;
    cin>>n>>m;
    cin.getline(s[0],MAXN,'\n');
    for(i=1;i<=n;i++)
       cin.getline(s[i]+1,MAXN,'\n');
    if(s[1][1]=='&'){
        cout<<"0\n";
        return 0;}
    DFS(1,1);
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            if(uz[i][j]&&(i+j-1>mx))
                mx=i+j-1;
    cout<<mx<<'\n';
    return 0;
}

void DFS(int p,int q){
    uz[p][q]=1;
    if(!uz[p+1][q]&&s[p+1][q]=='.')
        DFS(p+1,q);
    if(!uz[p][q+1]&&s[p][q+1]=='.')
        DFS(p,q+1);}