#include <cstdio>
#define Nmax 128

using namespace std;


int a[Nmax][Nmax];
bool ok[Nmax][Nmax];

int max(int a, int b){
    if(a>b)
        return a;
    return b;
}

int sol; 

int main(){

    int N,M;

    //freopen("fis.in","r",stdin);
    scanf("%d%d", &N, &M);

    for(int i = 1; i <= N; ++i)
        for(int j =1; j <= M; ++j){
            char c;
            do{
                scanf("%c", &c);
            }while(c=='\n');

            if(c == '.')
                ok[i][j] = 1;
        }


    if(ok[1][1])
        a[1][1] = 1;

    for(int i = 1; i <= N; ++i)
        for(int j =1; j <= M; ++j){

            //Dreapta
            int ni = i;
            int nj = j+1;

            if(nj <= M && ok[ni][nj])
                a[ni][nj] = max(a[ni][nj], a[i][j] + 1);

            sol = max(sol, a[ni][nj]);
            //Jos
            ni = i + 1;
            nj = j;

            if(ni <= N && ok[ni][nj])
                a[ni][nj] = max(a[ni][nj], a[i][j] + 1);
            sol = max(sol, a[ni][nj]);
        }

        printf("%d\n", sol);
    return 0;
}