#include<iostream>

using namespace std;
int dl[]={0,1};
int dc[]={1,0};
inline void citeste(int &n)
{
    do{
        cin>>n;
    }while(n<1 || n>101);
}
inline void citeste(char a[][102],int n,int m)
{
    int i,j;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
          if(i==1 && j==1)
          a[i][j]='.';
        else
    do{cin>>a[i][j];}while(!(a[i][j]=='.' || a[i][j]=='&'));

}
void rezolva(char a[][102],int n,int m,int x,int y,int c,int &mmx)
{
    int i;
    for(i=0;i<=1;i++)
        if(a[x+dl[i]][y+dc[i]]=='.' && x+dl[i]<=n && y+dc[i]<=m)
    {
        rezolva(a,n,m,x+dl[i],y+dc[i],c+1,mmx);
        if(c+1>mmx)
        mmx=c+1;
    }

}
int main()
{
    char a[102][102];
    int n,m,c=1,mmx=1;
    citeste(n);
    citeste(m);
    if(m==1 && n==1)
    {
        cout<<1;
        return 0;
    }
    citeste(a,n,m);
    rezolva(a,n,m,1,1,c,mmx);
    cout<<mmx;
    return 0;
}