// RandomUsername (Nikola Jovanovic) // Contest Name // Problem Name #include #define DBG false #define debug(x) if(DBG) printf("(ln %d) %s = %d\n", __LINE__, #x, x); #define lld long long #define ff(i,a,b) for(int i=a; i<=b; i++) #define fb(i,a,b) for(int i=a; i>=b; i--) #define par pair #define fi first #define se second #define mid (l+r)/2 #define INF 1000000000 #define MAXN 505 using namespace std; int n, m; int a[MAXN][MAXN]; int U[MAXN][MAXN]; int curr, best; char s[MAXN]; int main() { scanf("%d %d", &n, &m); ff(i, 1, n) { scanf("%s", s); ff(j, 1, m) { a[i][j] = s[j-1] - '0'; if(a[i][j] == 1) U[i][j] = U[i-1][j] + 1; } } ff(i, 1, n) { ff(j, 1, m) { if(U[i][j] <= 1) continue; ff(len, 2, m) { if(a[i][j+len-1] == 0) break; if(U[i][j+len-1] <= 1) continue; best = max(best, U[i][j] + U[i][j+len-1] + len - 2); } } } printf("%d\n", best); return 0; }