#include #include #include #include #include #include using namespace std; int n , m , mat[1000][1000] , dp1[1000][1000] , dp2[1000][1000] , sol; int main() { #ifndef ONLINE_JUDGE freopen("input.txt" , "r" , stdin); #endif // ONLINE_JUDGE cin >> n >> m; char ch; for(int i = 1 ; i <= n ; ++i) { for(int j = 1 ; j <= m ; ++j) { cin >> ch; mat[i][j] = ch - '0'; } } for(int i = 1 ; i <= n ; ++i) { for(int j = 1 ; j <= m ; ++j) { if(mat[i][j] == 1) { dp1[i][j] = dp1[i - 1][j] + 1; } else { dp1[i][j] = 0; } } } for(int i = 1 ; i <= n ; ++i) { for(int j = 1 ; j <= m ; ++j) { if(mat[i][j] == 0) dp2[i][j] = 0; else { if(mat[i][j - 1] == 0) dp2[i][j] = 0; else { dp2[i][j] = max(dp1[i][j - 1] + dp1[i][j] , dp2[i][j - 1] + dp1[i][j] - dp1[i][j - 1] + 1); } } if(dp1[i][j] != 1) sol = max(sol , dp2[i][j]); } } cout << sol; return 0; }