import javax.xml.transform.Result;import java.util.Arrays;import java.util.Scanner;public class Main {static int n,m;static int[][] graph;static int [][] visited;static int [] dx={1,0,-1,0};static int [] dy={0,1,0,-1};static int result;static int count;public static void main(String[] args) {Scanner in=new Scanner(System.in);n=in.nextInt();m=in.nextInt();graph=new int[n][m];visited=new int[n][m];for (int i = 0; i <n; i++) {for (int j=0;j<m;j++){graph[i][j]=in.nextInt();}}for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {dfs(i,j);result= Math.max(result,count);count=0;}}System.out.println(result);}static void dfs(int x,int y){if(graph[x][y]==0||visited[x][y]==1){return;}visited[x][y]=1;count++;for (int i = 0; i <4; i++) {int nextx=x+dx[i];int nexty=y+dy[i];if(nextx<0||nexty<0||nextx>=n||nexty>=m){continue;}dfs(nextx,nexty);}}}