#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("turnuri2.in");
#define MAX 105
queue <pair<int, int> > coada;
int a[MAX][MAX];
int n, m, i, j;
int main()
{
    char c;
    cin>>n>>m;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            cin>>c;
            if(c=='&')
                a[i][j]=-1;
        }
    }
    i=j=1;
    if(!a[i][j])
    {
        a[i][j]=1;
        coada.push(make_pair(1, 1));
    }
    while(coada.size())
    {
        pair<int, int> x=coada.front();
        coada.pop();
        i=x.first;
        j=x.second;
        if(i>n || j>m || i<1 || j<1)
            continue;
        if(!a[i+1][j])
        {
            a[i+1][j]=a[i][j]+1;
            coada.push(make_pair(i+1, j));
        }
        if(!a[i][j+1])
        {
            a[i][j+1]=a[i][j]+1;
            coada.push(make_pair(i, j+1));
        }
    }
    int s=0;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            if(a[i][j]>0)
                s=max(a[i][j], s);
        }
    }
    cout<<s;
}