import sys input = sys.stdin.readline H, W, N = map(int, input().split()) G = [[] for i in range(N)] for i in range(H): C = list(map(int, input().split())) for j in range(W): G[C[j] - 1].append((i, j)) inf = 10 ** 18 temp = [[-inf] * W for i in range(H)] dx = [1, 0, -1, 0] dy = [0, 1, 0, -1] for i in range(N): dic = dict() for x, y in G[i]: val = 0 for k in range(4): nx = x + dx[k] ny = y + dy[k] if nx < 0 or nx > H - 1 or ny < 0 or ny > W - 1: continue val = max(val, temp[nx][ny] + 1) dic[(x, y)] = val for x, y in G[i]: temp[x][y] = dic[(x, y)] ans = 0 for i in range(H): ans = max(ans, max(temp[i])) print(ans + 1)