//#include<stdio.h>
//int main()
//{
// int m,n;
// int sum = 0, k , r, s = 0;
// int i;
// scanf("%d %d",&n,&m);
// k = n;
// r = n;
// while(r>0)
// {
// r--;
// for(i=1;i<=n;i++)
// {
// if(n%i == 0)
// {
// n /= i;
// printf("%d %d\n",i, n);
// s++;
// sum++;
// }
// }
// printf("%d\n", sum);
// if(s !=m)
// {
// sum--;
// }
// printf("%d\n", sum);
// n = k;
// s = 0;
// }
// printf("%d", 2* sum);
// return 0;
//}
//#include<stdio.h>
//int main()
//{
// int x, y, i, j, l,m,arr[35][35] = {}, sum = 0,t, f, k = 0;
// scanf("%d %d",&x, &y);
// for(i=0;i<y;i++)
// {
// for(j=0;j<x;j++)
// {
// scanf("%1d", &arr[i][j]);
// }
// }
// for(i=0;i<y;i++)
// {
// for(j=0;j<x;j++)
// {
// k = 0;
// if(arr[i][j] == 1)
// {
// if(arr[i][j+1] == 1)
// {
// while(arr[i][j+k] == 1)
// {
// if(arr[i+1][j+k] == 1)
// {
// arr[i][j+k] = 1;
// }
// else
// {
// arr[i][j+k] = 0;
// }
// k++;
// }
// sum++;
// }
// else if(arr[i+1][j] == 1)
// {
// while(arr[i+k][j] == 1)
// {
// if(arr[i+k][j+1] == 1)
// {
// arr[i+k][j] = 1;
// }
// else
// {
// arr[i+k][j] = 0;
// }
// k++;
// }
// sum++;
// }
// }
// }
//// for(l=0;l<y;l++)
//// {
//// for(m=0;m<x;m++)
//// {
//// printf("%1d",arr[l][m]);
//// }
//// puts("");
//// }
//// puts("");
// }
// printf("%d", sum);
//}
#include<stdio.h>
int x, y, i, j, l, p,arr[35][35] = {},sum = 0,k = -1, max = -1;
int f(i,j)
{
if(arr[i][j] == 1)
{
return 0;
}
if(arr[i][j] == 2)
{
return -1;
}
sum++;
arr[i][j] = 1;
f(i-1, j);
f(i+1, j);
f(i, j-1);
f(i, j+1);
}
int main()
{
scanf("%d %d",&x, &y);
for(i=1; i<=y; i++)
{
for(j=1; j<=x; j++)
{
scanf("%1d", &arr[i][j]);
}
}
for(i=1; i<=y; i++)
{
for(j=1; j<=x; j++)
{
l = f(i, j);
if(l != -1)
{
if(sum > max)
{
max = sum;
}
}
sum = 0;
}
}
printf("%d",max);
}