H, W = map(int, input().split()) A = [] D = [] for i in range(H): A.append(list(map(int, input().split()))) for j in range(W): D.append((A[i][j], i, j)) D.sort() B = [[1] * W for _ in range(H)] dx = [1, 0, -1, 0] dy = [0, 1, 0, -1] for a, px, py in D: for k in range(4): x = px + dx[k] y = py + dy[k] if x < 0 or x > H - 1 or y < 0 or y > W - 1: continue if A[x][y] >= a: continue B[px][py] = max(B[px][py], B[x][y] + 1) print(max([max(B[i]) for i in range(H)]))