#include <iostream> using namespace std; typedef struct pozitie {int l,c,v;} POZITIE; int n,m,i,j,rez; int prim,ultim; char A[100][100]; int VIZ[100][100]; POZITIE Q[1000],poz; int lnou,cnou; int main() { cin>>n>>m; for (i=0;i<n;i++) for (j=0;j<n;j++) cin>>A[i][j]; rez=1; prim=ultim=0; poz.l=0; poz.c=0; poz.v=1; Q[0]=poz; VIZ[0][0]=1; while (prim<=ultim) { lnou=Q[prim].l+1; cnou=Q[prim].c; if (lnou<n && VIZ[lnou][cnou]==0 && A[lnou][cnou]=='.') { poz.l=lnou; poz.c=cnou; poz.v=1+Q[prim].v; if (rez<poz.v) rez=poz.v; VIZ[lnou][cnou]=1; Q[++ultim]=poz; } lnou=Q[prim].l; cnou=Q[prim].c+1; if (lnou<n && VIZ[lnou][cnou]==0 && A[lnou][cnou]=='.') { poz.l=lnou; poz.c=cnou; poz.v=1+Q[prim].v; if (rez<poz.v) rez=poz.v; VIZ[lnou][cnou]=1; Q[++ultim]=poz; } prim++; } cout<<rez; return 0; }