#include <iostream> #include <fstream> using namespace std; ifstream f("data.in"); int n,m,ma[505][505],maxi; void up(int i,int j,int dis,int dis2,int dis3) { if(ma[i-1][j]==1) up(i-1,j,dis,dis2,dis3+1); if(maxi<dis+dis2+dis3) maxi=dis+dis2+dis3; } void right(int i,int j,int dis,int dis2) { if(ma[i][j+1]==1) right(i,j+1,dis,dis2+1); if(ma[i-1][j]==1 /*&& dis2!=1*/) up(i-1,j,dis,dis2,1); } void down(int i,int j,int dis) { if(ma[i+1][j]==1) down(i+1,j,dis+1); if(ma[i][j+1]==1 && dis!=1) right(i,j+1,dis,1); } int main() { maxi=0; string aux; cin>>n>>m; int i,j; for(i=1;i<=n;i++) { cin>>aux; for(j=m-1;j>=0;j--) { ma[i][j]=(int)aux[j-1]-48; //aux=aux/10; } } for(i=1;i<=n;i++) for(j=1;j<=m;j++) if(ma[i][j]==1) down(i,j,1); cout<<maxi; }