from collections import deque H,W = map(int, input().split()) A = [ list(map(int, input().split())) for _ in range(H) ] dx=[0,1,0,-1] dy=[1,0,-1,0] def dfs(vx,vy,walk): global ans ans = max(ans, walk) for x,y in zip(dx,dy): vvx = vx+x vvy = vy+y if not (0<=vvxA[vx][vy]: dfs(vvx,vvy,walk+1) else: continue global ans ans = 0 for i in range(H): for j in range(W): seen = set() dfs(i,j,1) print(ans)