첫째 줄에 총 건물 개수(N), 건설 조건 개수(K) 입력
둘째 줄부터 K+1번째 줄까지 건설 조건 입력
K+2번째 줄에 최종으로 건설해야 하는 건물 입력
최종 건물을 건설하기 위한 시간을 출력
N, K = map(int, sys.stdin.readline().split())
delay = list((map(int, sys.stdin.readline().split())))
indeg = {build:[[],0] for build in range(1, N+1)}
for _ in range(K):
a, b = map(int, sys.stdin.readline().split())
indeg[a][0].append(b)
indeg[b][1] += 1
win = int(input())
q = deque([])
ans = [delay[idx] for idx in range(N)]
for build in range(1, N+1):
if indeg[build][1] == 0: q.append(build)
while q:
curr = q.popleft()
if curr == win: break
for next_ in indeg[curr][0]:
indeg[next_][1] -= 1
ans[next_-1] = max(ans[next_-1], delay[next_-1]+ans[curr-1])
if indeg[next_][1] == 0: q.append(next_)