#include #include #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) maxi=max(maxi,2*min(max1,max2) +(ind2-ind1-1)); } maxim=max(maxim,maxi); } cout<