#include<stdio.h>
#include<algorithm>
using namespace std;
int dat[100][100];
int a,b;
int solve(int row,int col){
	int ret=0;
	dat[row][col]=0;
	if(row>0&&dat[row-1][col]==1){
		ret=max(ret,solve(row-1,col));
	}
	if(col>0&&dat[row][col-1]==1){
		ret=max(ret,solve(row,col-1));
	}
	if(row<b-1&&dat[row+1][col]==1){
		ret=max(ret,solve(row+1,col));
	}
	if(col<a-1&&dat[row][col+1]==1){
		ret=max(ret,solve(row,col+1));
	}
	dat[row][col]=1;
	return ret+1;
}
int main(){
	while(1){
		scanf("%d%d",&a,&b);
		if(a+b==0)return 0;
		for(int i=0;i<b;i++){
			for(int j=0;j<a;j++){
				scanf("%d",&dat[i][j]);
			}
		}
		int ret=0;
		for(int i=0;i<b;i++){
			for(int j=0;j<a;j++){
				if(dat[i][j])ret=max(ret,solve(i,j));
			}
		}
		printf("%d\n",ret);
	}
}