#include <fstream>

using namespace std;

int x[10001], y[10001], v[10001], a[101][101];

int main()
{int n, m, i, j, max = 0, l, r, u; char k;
    ifstream in ("run.in");
    ofstream out("run.out");
    in >> n >> m;
    for (i = 1; i <= n; i++)
    {
        in.get();
        for (j = 1; j <= m; j++)
        {
            in.get(k);
            if (k == '.')
                a[i][j] = 0;
            else a[i][j] = 1;
        }
    }
    l = 1; r = 1;
    x[1] = 1;
    y[1] = 1;
    if (!a[1][1])
        v[1] = 1;
    while (l <= r)
    {
        if (v[l] > max)
            max = v[l], u = l;
        i = x[l];
        j = y[l];
        if ((!a[i + 1][j]) && (i < n))
        {
            x[++r] = i + 1;
            y[r] = j;
            v[r] = v[l] + 1;
        }
        if ((!a[i][j + 1]) && (j < m))
        {
            x[++r] = i;
            y[r] = j + 1;
            v[r] = v[l] + 1;
        }
        l++;
    }
    out << max << '\n';


    return 0;
}