#include <iostream>
#include <fstream>
#include <queue>

using namespace std;

int a[102][102];
char c[102][102];
int n,i,m,j;


int ok(int i,int j,int n,int m)
{
    if(i>=0&&i<n&&j>=0&&j<m) return 1;
    return 0;
}

void citeste(int &n,int &m)
{
    ifstream f("run.in");
    int i,j;
    cin>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            cin>>c[i][j];
}

int rezolva()
{
    if(n==1 && m==1 && c[1][1]=='.') return 1;
    else if(c[1][1]!='.') return 0;
    a[1][1] = 1;
    int maxi=0;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
    {
        if(c[i][j]=='.')
        {
            if(c[i][j-1]=='.') a[i][j] = a[i][j-1] + 1;
            if(c[i-1][j]=='.')
                if(a[i-1][j]>a[i][j]) a[i][j] = a[i-1][j] + 1;

            if(a[i][j]>maxi) maxi = a[i][j];
        }
    }

    return maxi;
}



int main()
{
    citeste(n,m);
    cout<<rezolva();
    return 0;
}