from collections import deque N,M,K=map(int,input().split()) A=[] for _ in range(N): A.append(list(map(int,input().split()))) def nibun(f): left,right=0,10**9+1 while right-left>1: mid=(right+left)//2 if f(mid): left=mid else: right=mid return left def isok(n): if bfs((0,0),n)<=K: return True return False def bfs(s,n): dq=deque() high=[[10**9 for _ in range(M)] for _ in range(N)] if A[0][0]