#include #include 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(); Lee(1, 0, 0); if (a[0][0] == '.') for (i = 0; i < n; i++) for (j = 0; j < m; j++) { if (max < b[i][j]) max = b[i][j]; } printf("%d", max); return 0; } void Init() { int i, j; for (i = 0; i < 100; i++) for (j = 0; j < 100; 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); }