#include <bits/stdc++.h>
using namespace std;

#define loop(i,n) for(int i=1;i<=n;i++)
bool a[92][92];

int dfs(int i,int j){
  if(a[i][j]){
    int s=0;
    a[i][j]=0;
    int d[5]={0,-1,0,1,0};
    loop(e,4){
      int dx=d[e-1];
      int dy=d[e];
      s=max(s,dfs(i+dx,j+dy));
    }
    a[i][j]=1;
    return s+1;
  }else{
    return 0;
  }
}

int main(){
  int m,n;
  while(cin>>m>>n,m){
    loop(i,m)loop(j,n)a[i-1][j-1]=0;
    loop(i,m)loop(j,n)cin>>a[i][j];
    int r=0;
    loop(i,m)loop(j,n)r=max(r,dfs(i,j));
    cout<<r<<endl;
  }
}