#include <iostream>

using namespace std;

int n, m, smax = 0, v[102][102], s[100002][2], q;
char a[102][102];

int maxim (int aa, int bb, int cc)
{
    if ( aa >= bb && aa > cc )
        return aa;
    if ( bb >= aa && bb > cc )
        return bb;
    return cc;
}

int main()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i ++ )
        for ( int j = 1; j <= m; j ++ )
            cin >> a[i][j];
    if ( a[1][1] == '&' )
        cout << 0;
    else
    {
        v[1][1] = 1;
        s[++q][1] = 1, s[q][2] = 1;
        int i, j;
        for (int t = 1; t <= q; t ++ )
        {
            i = s[t][1], j = s[t][2];
            if ( a[i][j+1] == '.' )
            {
                if ( v[i][j+1] < v[i][j] + 1 )
                {
                    v[i][j+1] = v[i][j] + 1;
                s[++q][1] = i;
                s[q][2] = j+1;}
            }
            if ( a[i+1][j] == '.' )
            {
                if ( v[i+1][j] < v[i][j] + 1 )
                {
                    v[i+1][j] = v[i][j] + 1;
                s[++q][1] = i+1;
                s[q][2] = j;}
            }
            if ( v[i][j] > smax )
                smax = v[i][j];
        }
        cout << smax;
    }
    return 0;
}