from operator import itemgetter H,W=map(int,input().split()) A=[list(map(int,input().split())) for i in range(H)] LIST=[] for i in range(H): for j in range(W): LIST.append((A[i][j],i,j)) LIST.sort(key=itemgetter(0),reverse=True) DP=[[1]*W for i in range(H)] for w,i,j in LIST: for x,y in [(i+1,j),(i-1,j),(i,j+1),(i,j-1)]: if 0<=xA[i][j]: DP[i][j]=max(DP[i][j],DP[x][y]+1) ANS=0 for i in range(H): for j in range(W): ANS=max(ANS,DP[i][j]) print(ANS)