def bfs(i,j,k):
if i>=0 and i<R and j>=0 and j<C and A[i][j]<k and dis[i][j]>0:
return dis[i][j] #!!(1)
elif i>=0 and i<R and j>=0 and j<C and A[i][j]<k:
l=bfs(i,j-1,A[i][j])
u=bfs(i-1,j,A[i][j])
r=bfs(i,j+1,A[i][j])
d=bfs(i+1,j,A[i][j])
dis[i][j]=1+max(l,u,r,d) #!!(2)
return dis[i][j]
else:
return 0
R,C=map(int,input().split())
A=[[] for i in range(R)]
for i in range(R):
A[i]
def bfs(i,j,k):
if i>=0 and i<R and j>=0 and j<C and A[i][j]<k and dis[i][j]>0:
return dis[i][j] #!!(1)
elif i>=0 and i<R and j>=0 and j<C and A[i][j]<k:
l=bfs(i,j-1,A[i][j])
u=bfs(i-1,j,A[i][j])
r=bfs(i,j+1,A[i][j])
d=bfs(i+1,j,A[i][j])
dis[i][j]=1+max(l,u,r,d) #!!(2)
return dis[i][j]
else:
return 0
R,C=map(int,input().split())
A=[[] for i in range(R)]
for i in range(R):
A[i]