H,W=map(int,input().split()) A=[] for _ in range(H): A.append(list(map(int,input().split()))) lis=[] for i in range(H): for j in range(W): lis.append((A[i][j],i,j)) lis.sort(reverse=True) d=[[1,0],[-1,0],[0,1],[0,-1]] dp=[[1]*W for _ in range(H)] for a,i,j in lis: for dx,dy in d: if 0<=i+dxA[i][j]: dp[i][j]=max(dp[i+dx][j+dy]+1,dp[i][j]) ans=0 for i in range(H): ans=max(max(dp[i]),ans) print(ans)