#include #include using namespace std; #define inf (10000000) #define maxn 550 int n, m; int d[maxn][maxn], r[maxn][maxn], u[maxn][maxn]; char s[maxn][maxn]; int main() { scanf("%d%d", &n, &m); for(int i=1; i<=n; ++i) scanf("%s", s[i]+1); for(int i=0; i<=n+1; ++i) for(int j=0; j<=m+1; ++j) d[i][j]=r[i][j]=u[i][j]=-inf; for(int i=1; i<=n; ++i) for(int j=1; j<=m; ++j) if(s[i][j]=='1') d[i][j]=max(1, d[i-1][j]+1); for(int i=1; i<=n; ++i) for(int j=1; j<=m; ++j) if(s[i][j]=='1') r[i][j]=max(d[i][j-1]+1, r[i][j-1]+1); int sol=0; for(int i=n; i>0; --i) for(int j=1; j<=m; ++j) if(s[i][j]=='1') { u[i][j]=max(r[i+1][j]+1, u[i+1][j]+1); sol=max(sol, u[i][j]); } //Fortza CFR!!! printf("%d\n", sol); return 0; }