#include <iostream>
#include <algorithm>
using namespace std;

#define repi(i,a,b) for(int i=(a);i<(b);i++)
#define rep(i,n) for(int i=0;i<(n);i++)

int n, m;
bool s[92][92];
int dx[4] = { 1, 0,-1, 0};
int dy[4] = { 0, 1, 0,-1};

int len(int i, int j) {
	if(!s[i][j])return 0;
	s[i][j]=false;
	int r=0;
	rep(k, 4) {
		r= max(r, len(i+dx[k], j+dy[k]));
	}
	s[i][j]=true;
	return r+1;
}

int main() {
	ios::sync_with_stdio(false);
	
	while(cin>>n>>m,n|m) {
		rep(i, m+1) s[n+1][i]=false;
		rep(i, n+1) s[i][m+1]=false;
		rep(i, m) {
			rep(j, n) {
				cin >> s[j+1][i+1];
			}
		}
		int l=0;
		rep(i, m) {
			rep(j, n) {
				l = max(l, len(j+1, i+1));
			}
		}
		cout << l << endl;
	}
	return 0;
}