// RandomUsername (Nikola Jovanovic)
// Contest Name
// Problem Name

#include <bits/stdc++.h>
#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<int, int>
#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)
    {
        int j = 1;
        while(j <= m)
        {
           if(a[i][j] == 0) {j++; continue;}
           if(a[i][j] == 1)
           {
               // start series
               if(U[i][j] == 1) curr = 0;
               else curr = U[i][j];
               j++;
               while(j <= m)
               {
                    if(a[i][j] == 0) break;
                    if(U[i][j] >= 1)
                    {
                        if(curr > 0) best = max(best, U[i][j] + curr);
                    }
                    if(curr > 0) curr++;
                    if(U[i][j] >= 1 && U[i][j] > curr) curr = U[i][j];
                    j++;
               }

           }
        }
    }
    printf("%d\n", best);
    return 0;
}