#include using namespace std; const int NMAX = 510; char a[NMAX][NMAX]; int v[NMAX][NMAX], h[NMAX][NMAX]; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m; cin >> n >> m; cin.get(); for (int i = 1; i <= n; ++i) { cin.getline(a[i] + 1, 502); } for (int i = 1; i <= n; ++i) { for (int j = m; j; --j) { if (a[i][j] == '0') { v[i][j] = 0; h[i][j] = 0; } else { v[i][j] = v[i - 1][j] + 1; h[i][j] = h[i][j + 1] + 1; } } } int lmax = 0; for (int i = 2; i <= n; ++i) { for (int j = 1; j <= n; ++j) { if (v[i][j] && h[i][j]) { for (int k = j + 1; k < j + h[i][j]; ++k) { lmax = max(lmax, v[i][j] + k - j - 1 + v[i][k]); } } } } cout << lmax << '\n'; return 0; }