from collections import deque import sys input = sys.stdin.readline ans = [] T = int(input()) for _ in range(T) : N, K = map(int, input().split()) build_info = [[] for _ in range(N+1)] dp = [-1]*(N+1) build_time = [0] + list(map(int, input().split())) indegree = [0]*(N+1) for _ in range(K) : u, v = map(int, input().split()) build_info[u].append(v) indegree[v] += 1 W = int(input()) qu = deque() for i in range(1, N+1) : if indegree[i] == 0 : qu.append(i) dp[i] = build_time[i] while qu : now = qu.popleft() if now == W : break for next in build_info[now] : dp[next] = max(dp[next], dp[now] + build_time[next]) indegree[next] -= 1 if indegree[next] == 0 : qu.append(next) ans.append(str(dp[W])) print('\n'.join(ans))