from collections import deque
# BFS 함수
def bfs(m, fuel, map_grid):
# 시작점은 (m-1, 0), 끝점은 (0, m-1)
start_x, start_y = m - 1, 0
end_x, end_y = 0, m - 1
# 연료를 소모하며 방문한 곳을 기록할 배열
visited = [[False] * m for _ in range(m)]
visited[start_x][start_y] = True
# BFS에 사용할 큐 (현재 x, y 좌표와 남은 연료를 저장)
queue = deque([(start_x, start_y, fuel)]) # (x, y, 남은 연료)
# 네 방향으로 이동
directions = [(-1, 0), (1, 0), (0, -1), (0, 1)] # 상, 하, 좌, 우
while queue:
x, y, current_fuel = queue.popleft()
# 끝점에 도달하면 남은 연료 출력
if (x, y) == (end_x, end_y):
return current_fuel
# 현재 위치에서 이동
for dx, dy in directions:
nx, ny = x + dx, y + dy
if 0 <= nx < m and 0 <= ny < m and not visited[nx][ny]:
required_fuel = map_grid[nx][ny]
if current_fuel >= required_fuel:
visited[nx][ny] = True
queue.append((nx, ny, current_fuel - required_fuel))
return 0 # 끝점에 도달할 수 없다면 0 출력
# 입력 처리
m = int(input()) # 맵 크기
map_grid = []
for _ in range(m):
map_grid.append(list(map(int, input().split())))
fuel = int(input()) # 재현이가 가지고 있는 연료
# BFS 수행
result = bfs(m, fuel, map_grid)
# 결과 출력
print(result)
ZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVxdWUKCiMgQkZTIO2VqOyImApkZWYgYmZzKG0sIGZ1ZWwsIG1hcF9ncmlkKToKICAgICMg7Iuc7J6R7KCQ7J2AIChtLTEsIDApLCDrgZ3soJDsnYAgKDAsIG0tMSkKICAgIHN0YXJ0X3gsIHN0YXJ0X3kgPSBtIC0gMSwgMAogICAgZW5kX3gsIGVuZF95ID0gMCwgbSAtIDEKICAgIAogICAgIyDsl7Dro4zrpbwg7IaM66qo7ZWY66mwIOuwqeusuO2VnCDqs7PsnYQg6riw66Gd7ZWgIOuwsOyXtAogICAgdmlzaXRlZCA9IFtbRmFsc2VdICogbSBmb3IgXyBpbiByYW5nZShtKV0KICAgIHZpc2l0ZWRbc3RhcnRfeF1bc3RhcnRfeV0gPSBUcnVlCiAgICAKICAgICMgQkZT7JeQIOyCrOyaqe2VoCDtgZAgKO2YhOyerCB4LCB5IOyijO2RnOyZgCDrgqjsnYAg7Jew66OM66W8IOyggOyepSkKICAgIHF1ZXVlID0gZGVxdWUoWyhzdGFydF94LCBzdGFydF95LCBmdWVsKV0pICAjICh4LCB5LCDrgqjsnYAg7Jew66OMKQogICAgCiAgICAjIOuEpCDrsKntlqXsnLzroZwg7J2064+ZCiAgICBkaXJlY3Rpb25zID0gWygtMSwgMCksICgxLCAwKSwgKDAsIC0xKSwgKDAsIDEpXSAgIyDsg4EsIO2VmCwg7KKMLCDsmrAKICAgIAogICAgd2hpbGUgcXVldWU6CiAgICAgICAgeCwgeSwgY3VycmVudF9mdWVsID0gcXVldWUucG9wbGVmdCgpCiAgICAgICAgCiAgICAgICAgIyDrgZ3soJDsl5Ag64+E64us7ZWY66m0IOuCqOydgCDsl7Dro4wg7Lac66ClCiAgICAgICAgaWYgKHgsIHkpID09IChlbmRfeCwgZW5kX3kpOgogICAgICAgICAgICByZXR1cm4gY3VycmVudF9mdWVsCiAgICAgICAgCiAgICAgICAgIyDtmITsnqwg7JyE7LmY7JeQ7IScIOydtOuPmQogICAgICAgIGZvciBkeCwgZHkgaW4gZGlyZWN0aW9uczoKICAgICAgICAgICAgbngsIG55ID0geCArIGR4LCB5ICsgZHkKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIDAgPD0gbnggPCBtIGFuZCAwIDw9IG55IDwgbSBhbmQgbm90IHZpc2l0ZWRbbnhdW255XToKICAgICAgICAgICAgICAgIHJlcXVpcmVkX2Z1ZWwgPSBtYXBfZ3JpZFtueF1bbnldCiAgICAgICAgICAgICAgICBpZiBjdXJyZW50X2Z1ZWwgPj0gcmVxdWlyZWRfZnVlbDoKICAgICAgICAgICAgICAgICAgICB2aXNpdGVkW254XVtueV0gPSBUcnVlCiAgICAgICAgICAgICAgICAgICAgcXVldWUuYXBwZW5kKChueCwgbnksIGN1cnJlbnRfZnVlbCAtIHJlcXVpcmVkX2Z1ZWwpKQogICAgCiAgICByZXR1cm4gMCAgIyDrgZ3soJDsl5Ag64+E64us7ZWgIOyImCDsl4bri6TrqbQgMCDstpzroKUKCiMg7J6F66ClIOyymOumrAptID0gaW50KGlucHV0KCkpICAjIOuntSDtgazquLAKbWFwX2dyaWQgPSBbXQoKZm9yIF8gaW4gcmFuZ2UobSk6CiAgICBtYXBfZ3JpZC5hcHBlbmQobGlzdChtYXAoaW50LCBpbnB1dCgpLnNwbGl0KCkpKSkKCmZ1ZWwgPSBpbnQoaW5wdXQoKSkgICMg7J6s7ZiE7J206rCAIOqwgOyngOqzoCDsnojripQg7Jew66OMCgojIEJGUyDsiJjtlokKcmVzdWx0ID0gYmZzKG0sIGZ1ZWwsIG1hcF9ncmlkKQoKIyDqsrDqs7wg7Lac66ClCnByaW50KHJlc3VsdCkK