#include <iostream>

using namespace std;
int m[101][101], m1[3][10000];
int main()
{
    int n, col, i, j, inc, sf, max1=0, l, c, x;
    char ch;
    cin>>n>>col;
    cin.ignore();
    for(i=1; i<=n; ++i)
        {
            for(j=1; j<=col; ++j)
                {
                    cin>>ch;
                    if(ch=='&') m[i][j]=-1;
                }
            cin.ignore();
        }
    inc=1;
    sf=1;
    m1[1][inc]=1;
    m1[2][inc]=1;
    while(inc<=sf)
        {
            l=m1[1][inc];
            c=m1[2][inc];
            if(l<n)
                {
                    x=m[l][c]+1;
                    if(x>m[l+1][c]&&m[l+1][c]>=0)
                        {
                            m[l+1][c]=x;
                            sf++;
                            m1[1][sf]=l+1;
                            m1[2][sf]=c;
                            if(x>max1) max1=x;
                        }
                }
            if(c<col)
                {
                    x=m[l][c]+1;
                    if(x>m[l][c+1]&&m[l][c+1]>=0)
                        {
                            m[l][c+1]=x;
                            if(x>max1) max1=x;
                            sf++;
                            m1[1][sf]=l;
                            m1[2][sf]=c+1;
                        }

                }
            inc++;
        }
    cout<<max1+1;
    return 0;
}