#include using namespace std; int a[510][510],b[510][510],c[510][510],d[510][510],n,m,maxim; char c1; void citire () { cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>c1; if(c1=='1') d[i][j]=1; } } } void construct_a () { for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(d[i][j]==1) a[i][j]=a[i-1][j]+1; } } } void construct_b () { int h; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(d[i][j]==1) { h=a[i][j-1]; if(b[i][j-1]>h) h=b[i][j-1]; if(h!=0) b[i][j]=h+1; } } } } void construct_c () { int h; for(int i=n;i>=1;i--) { for(int j=1;j<=m;j++) { if(d[i][j]==1) { h=b[i+1][j]; if(c[i+1][j]>h) h=c[i+1][j]; if(h!=0) c[i][j]=h+1; if(h+1>maxim) maxim=h+1; } } } } int main() { citire(); construct_a(); construct_b(); construct_c(); if(maxim==1) maxim=0; cout<