#include"iostream"
#include"string.h"
using namespace std;
bool sign[110][110];
int ai[110][110];
int m,n,num,sum;
int fx[4][2]={1,0,0,1,-1,0,0,-1};
bool check(int a,int b)
{
if(a>=0&&a<m&&b>=0&&b<n&&ai[a][b]&&!sign[a][b])
return true;
return false;
}
void dfs(int x,int y)
{
for(int i=0; i<4; i++)
{
int xx=x+fx[i][0];
int yy=y+fx[i][1];
if(check(xx,yy))
{
sum++;
sign[xx][yy]=true;
dfs(xx,yy);
}
}
if(sum>num)
num=sum;
}
int main()
{
while(cin>>m>>n)
{
if(!m&&!n)
break;
num=0;
memset(sign, false, sizeof(sign));
for(int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
{
cin>>ai[i][j];
}
}
for(int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
{
if(ai[i][j]&&!sign[i][j])
{
sum=1;
sign[i][j]=true;
dfs(i,j);
}
}
}
cout<<num<<endl;
}
return 0;
}
简单搜索