import copy
import numpy as np
global length
global height
global R
global C
def search(h, y, x):
# 如果到头 length[y][x]=0 return 0
# 往四个方向出发(如果可以)
# length[y][x] = max[四个方向] + 1
if length[y][x] != -1:
return length[y][x]
l,r,u,d = True, True, True, True
ch = height[y][x]
#print('y=%d,x=%d'%(y,x))
if x <= 0 or ch >= height[y][x-1]:
l = False
else:
search(h,y,x-1)
length[y][x] = max(length[y][x], length[y][x-1]+1)
if x >= C-1 or ch >= height[y][x+1]:
r = False
else:
search(h,y,x+1)
length[y][x] = max(length[y][x], length[y][x+1]+1)
if y <= 0 or ch >= height[y-1][x]:
d = False
else:
search(h,y-1,x)
length[y][x] = max(length[y][x], length[y-1][x]+1)
if y >= R-1 or ch >= height[y+1][x]:
u = False
else:
search(h,y+1,x)
length[y][x] = max(length[y][x], length[y+1][x]+1)
if not (l or r or u or d):
length[y][x] = 0
def f(h):
for y in range(R):
for x in range(C):
search(h, y, x)
R, C = [int(i) for i in input().split()]
height = []
length = []
for i in range(R):
height.append([int(j) for j in input().split()])
for y in range(R):
length.append([])
for x in range(C):
length[y].append(-1)
#print(np.array(height))
f(height)
ans = 0
for y in range(R):
for x in range(C):
ans = max(ans, length[y][x])
print(ans+1)