#include <cstdio>

int N, M;
char S[128][128];
char W[128][128];
int best;

void dfs(int x, int y, int d) {
    if (S[x][y] != '.') return;
    if (!W[x+1][y]) {
        W[x+1][y] = d+1;
        dfs(x+1, y,d+1);
    }
    if (!W[x][y+1]) {
        W[x][y+1] = d+1;
        dfs(x,y+1,d+1);
    }
    if (W[x][y] > best) best = W[x][y];
}



int main() {
    
    scanf("%d %d", &N, &M);
    for (int i=0; i<N; ++i) {
        scanf("%s", S[i]);
    }
    
    dfs(0,0,1);
    
    printf("%d\n", best);
    
    return 0;
}