#include <stdio.h>
#include <stdlib.h>

int m, n;
char a[100][100];
int b[100][100];

void Init();
void Lee();

int main()
{
    int i, j, max = 0;
    char s[2];

    scanf("%d%d", &n, &m);
    gets(s);
    for (i = 0; i < n; i++)
        gets(a[i]);

    Init();
    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
        {
            if ((a[i][j] == '.') && (b[i][j] == 0))
                Lee(1, i, j);
            if (max < b[i][j])
                max = b[i][j];
        }

    printf("%d", max);

    return 0;
}

void Init()
{
    int i, j;

    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
        {
            b[i][j] = 0;
        }
}

void Lee(int l, int i, int j)
{
    b[i][j] = l;
    if (j+1<m)
        if ((a[i][j+1] == '.') && (b[i][j+1] <= l))
            Lee(l+1, i, j+1);

    if (i+1<n)
        if ((a[i+1][j] == '.') && (b[i+1][j] <= l))
            Lee(l+1,i+1,j);
}