#include <iostream>
#include <string>
using namespace std;
struct point
{
    int x,y;
};
point a;
char A[101][101];
int maxx=0;
int n,m;
int ii;
bool ok(int k,point a)
{
    if (a.x>=n || a.y>=m)
        return false;
    if (A[a.x][a.y]!='.')
        return false;
    if (k>maxx)
        maxx=k;
    return true;
}
void back(int k,point a)
{
    for (ii=0;ii<2;++ii)
    {
        if (ii==0)
            a.x++;
        else
            a.y++;
        if (ok(k,a))
            back(k+1,a);
        else if (ii==0)
            a.x--;
        else
            a.y--;
    }
}

int main()
{
    a.x=0;
    a.y=0;
    cin>>n>>m;
    for (ii=0;ii<n;++ii)
    {
        cin>>A[ii];
        cin.get();
    }
    if (A[0][0]=='&')
        cout<<1;
    else
    {
        back(1,a);
        cout<<maxx+1;
    }
    return 0;
}