#include <iostream>
using namespace std;
int a[110][110],dp[110][110];
char x;

int n,m,i,j,maxi;
int main()
{
    cin>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
            cin>>x;
            a[i][j]=x=='.'?0:-1;
        }
    dp[1][1]=a[1][1];
    for(i=1;i<=m;i++)
    {
        if(!a[1][i])
        {
            dp[1][i]=i;
            maxi=maxi>i?maxi:i;
        }
        else
            break;
    }
    for(i=1;i<=n;i++)
    {
        if(!a[i][1])
        {
            dp[i][1]=i;
            maxi=maxi>i?maxi:i;
        }
        else
            break;
    }
    for(i=2;i<=n;i++)
        for(j=2;j<=m;j++)
        {
            if(!a[i][j]&&(dp[i-1][j]||dp[i][j-1]))
            {
                dp[i][j]=dp[i-1][j]+1>dp[i][j-1]+1?dp[i-1][j]+1:dp[i][j-1]+1;
                maxi=maxi>dp[i][j]?maxi:dp[i][j];
            }
        }
    cout<<maxi;
    return 0;
}