from sys import stdin, setrecursionlimit
setrecursionlimit(1000000000)
#input = stdin.readline
n = int(input())
grid = [list(map(int, input().split())) for _ in range(n)]
dis = [[-1] * (n + 1) for _ in range(n + 1)]
def dfs(i, j):
if dis[i][j] != -1: return dis[i][j]
dis[i][j] = 0
if i < n - 1 and grid[i + 1][j] < grid[i][j]:
dis[i][j] = dfs(i + 1, j) + 1
if i > 0 and grid[i - 1][j] < grid[i][j]:
dis[i][j] = max(dis[i][j], dfs(i - 1, j) + 1)
if j < n - 1 and grid[i][j + 1] < grid[i][j]:
dis[i][j] = max(dis[i][j], dfs(i, j + 1) + 1)
if j > 0 and grid[i][j - 1] < grid[i][j]:
dis[i][j] = max(dis[i][j], dfs(i, j - 1) + 1)
return dis[i][j]
best = -1
for i in range(n):
for j in range(n):
best = max(best, dfs(i, j))
print(best)