#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;
}