import sys #sys.setrecursionlimit((1<<19)-1) #import pypyjit #pypyjit.set_param('max_unroll_recursion=-1') input=sys.stdin.buffer.readline H,W=map(int,input().split()) A=[list(map(int,input().split())) for i in range(H)] p=[] for i in range(H): for j in range(W): p.append((A[i][j],i,j)) p.sort() dp=[[1]*(W) for i in range(H)] for a,i,j in p: for dx,dy in [(0,1),(1,0),(0,-1),(-1,0)]: try: assert i+dx>=0 assert j+dy>=0 if a>A[i+dx][j+dy]: dp[i][j]=max(dp[i][j],dp[i+dx][j+dy]+1) except: pass ans=0 for i in dp: ans=max(ans,max(i)) print(ans)