https://www.acmicpc.net/problem/18405
import sys
from collections import deque
N, K = map(int, sys.stdin.readline().split())
board = []
q = []
for i in range(N):
virus = list(map(int,sys.stdin.readline().split()))
board.append(virus)
for j in range(N):
if virus[j] !=0: # 바이러스가 존재하는 위치
q.append((virus[j], i, j))
S, X, Y = map(int,sys.stdin.readline().split())
q.sort() # 번호가 낮은 종류부터 증식하기 때문에 sort
dx = [-1, 0, 1, 0]
dy = [0, 1, 0, -1]
def bfs():
cnt = 0
queue = deque(q)
while queue:
if cnt == S or not queue:
break
for _ in range(len(queue)):
num, x, y = queue.popleft()
for i in range(4):
nx = x+dx[i]
ny = y+dy[i]
if 0<=nx<N and 0<=ny<N:
if board[nx][ny]==0:
board[nx][ny] = num
queue.append((num,nx, ny))
cnt+=1
return board[X - 1][Y - 1]
print(bfs())