#include<iostream>
#include<cstring>
#define DX 505
using namespace std;
int n,m;
char x[DX][DX];
int nr[DX][DX];
int main()
{
    int i,j,max1,max2,ind1,ind2,maxim=0,maxi;
    cin>>n>>m;
    for(i=1;i<=n;i++)
        cin>>(x[i]+1);
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            if(x[i][j]=='1')
            {
                nr[i][j]=1;
                nr[i][j]+=nr[i-1][j];
            }
        }
    }
    for(i=1;i<=n;i++)
    {
        max1=max2=maxi=ind1=ind2=0;
        for(j=1;j<=m;j++)
        {
            if(nr[i][j]>max1)
            {
                max2=max1;
                ind2=ind1;
                ind1=j;
                max1=nr[i][j];
            }
            else
            {
                if(nr[i][j]>max2)
                {
                    max2=nr[i][j];
                    ind2=j;
                }
            }
            if(x[i][j]=='0')
            {
                max1=max2=0;
                ind1=ind2=j;
            }
            if(max1>=1 && max2>=1 && max1==max2) maxi=max(maxi,max2+max1+(ind2-ind1-1));
        }
        maxim=max(maxim,maxi);
    }
    cout<<maxim<<"\n";
}