#include<iostream>
using namespace std;
const int dx[4]={0,0,1,-1};
const int dy[4]={1,-1,0,0};
int n,m,ans=0;
int a[1010][1010];
bool vis[1010][1010];
int num;
void dfs(int x,int y){
if(vis[x][y])return;
vis[x][y]=1;
num+=a[x][y];
for(int i=0;i<4;i++){
int u=x+dx[i],v=y+dy[i];
if(u<1||u>n||v<1||v>m)continue;
if(a[u][v]==0)continue;
dfs(u,v);
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(a[i][j]!=0)num=0,dfs(i,j),ans=max(ans,num);
}
}
cout<<ans<<endl;
}