#include using namespace std; # define pb push_back # define mp make_pair # define FORN( a , b , c ) for ( register int a = b ; a <= c ; ++ a ) # define FORNBACK( a , b , c ) for ( register int a = b ; a >= c ; -- a ) char mat [ 1000 ] [ 1000 ] ; int h [ 1000 ] ; # define fin cin # define fout cout int main() { //ifstream fin ( "input" ) ; //ofstream fout ( "output" ) ; int n ; fin >> n ; int m ; fin >> m ; FORN ( i , 1 , n ) { fin >> ( mat [ i ] + 1 ) ; } int best = 0 ; FORN ( i , 1 , n ) { int st = -1 ; FORN ( j , 1 , m ) { if ( mat [ i ] [ j ] == '1' ) { h [ j ] = h [ j ] + 1 ; if ( st == -1 ) { st = j ; } } else { h [ j ] = 0 ; st = -1 ; } if ( st != j and st != -1 and h [ j ] > 1 ) { FORN ( k , st , j - 1 ) { if ( h [ k ] > 1 ) best = max ( best , j - k + 1 + h [ j ] + h [ k ] - 2 ) ; } } } } fout << best << '\n' ; return 0; }