from collections import deque import sys input = sys.stdin.readline def solve() : N, K = map(int, input().split()) build_time = [0] + list(map(int, input().split())) graph = [[] for _ in range(N+1)] indegree = [0]*(N+1) for _ in range(K) : x, y = map(int, input().split()) graph[x].append(y) indegree[y] += 1 qu = deque() dp = [0]*(N+1) for i in range(1, N+1) : if indegree[i] == 0 : qu.append(i) dp[i] = build_time[i] W = int(input()) while qu : now = qu.popleft() if now == W : break for nxt in graph[now] : dp[nxt] = max(dp[nxt], dp[now] + build_time[nxt]) indegree[nxt] -= 1 if indegree[nxt] == 0 : qu.append(nxt) return dp[W] ans = [] for _ in range(int(input())) : ans.append(solve()) print("\n".join(map(str, ans)))