#include <stdio.h>
#include <algorithm>
#include <stack>
#include <vector>
#include <queue>
#include <cstring>
using namespace std;
int t, n, k, w;
int idx = 10001;
int make[1004];
int indegree[1004];
vector<vector<int>> a;
queue <int> q;
bool visited[1001];
int dp[1004];
void bfs(int x) {
visited[x] = true;
while (!q.empty()){
int here = q.front();
q.pop();
for (int i = 0; i < a[here].size(); i++) {
int nhere = a[here][i];
dp[nhere] = max(dp[nhere], dp[here] + make[nhere]);
indegree[nhere]--;
if (indegree[nhere] == 0)
q.push(nhere);
}
}
}
int main(){
scanf("%d", &t);
while (t--){
scanf("%d%d", &n, &k);
a.clear();
a.resize(n+1);
memset(make, 0, sizeof(make));
memset(dp, 0, sizeof(dp));
memset(visited, false, sizeof(visited));
memset(indegree, 0, sizeof(indegree));
for (int i = 1; i <= n; i++) {
scanf("%d", &make[i]);
}
for (int i = 1; i <= k; i++) {
int u, v;
scanf("%d%d", &u, &v);
a[u].push_back(v);
indegree[v]++;
}
for (int i = 1; i <= n; i++){
if (indegree[i] == 0){
q.push(i);
idx = min(i,idx);
//dp[i] = make[i];
}
}
scanf("%d", &w);
bfs(idx);
printf("%d\n",make[idx]+dp[w]);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IHQsIG4sIGssIHc7CmludCBpZHggPSAxMDAwMTsKaW50IG1ha2VbMTAwNF07CmludCBpbmRlZ3JlZVsxMDA0XTsKdmVjdG9yPHZlY3RvcjxpbnQ+PiBhOwpxdWV1ZSA8aW50PiBxOwpib29sIHZpc2l0ZWRbMTAwMV07CmludCBkcFsxMDA0XTsKdm9pZCBiZnMoaW50IHgpIHsKCXZpc2l0ZWRbeF0gPSB0cnVlOwoJd2hpbGUgKCFxLmVtcHR5KCkpewoJCQlpbnQgaGVyZSA9IHEuZnJvbnQoKTsKCQkJcS5wb3AoKTsKCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBhW2hlcmVdLnNpemUoKTsgaSsrKSB7CgkJCQlpbnQgbmhlcmUgPSBhW2hlcmVdW2ldOwoJCQkJZHBbbmhlcmVdID0gbWF4KGRwW25oZXJlXSwgZHBbaGVyZV0gKyBtYWtlW25oZXJlXSk7CgkJCQlpbmRlZ3JlZVtuaGVyZV0tLTsKCQkJCWlmIChpbmRlZ3JlZVtuaGVyZV0gPT0gMCkKCQkJCQlxLnB1c2gobmhlcmUpOwoJCQl9Cgl9Cn0KaW50IG1haW4oKXsKCXNjYW5mKCIlZCIsICZ0KTsKCXdoaWxlICh0LS0pewoJCXNjYW5mKCIlZCVkIiwgJm4sICZrKTsKCQlhLmNsZWFyKCk7CgkJYS5yZXNpemUobisxKTsKCQltZW1zZXQobWFrZSwgMCwgc2l6ZW9mKG1ha2UpKTsKCQltZW1zZXQoZHAsIDAsIHNpemVvZihkcCkpOwoJCW1lbXNldCh2aXNpdGVkLCBmYWxzZSwgc2l6ZW9mKHZpc2l0ZWQpKTsKCQltZW1zZXQoaW5kZWdyZWUsIDAsIHNpemVvZihpbmRlZ3JlZSkpOwoJCWZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewoJCQlzY2FuZigiJWQiLCAmbWFrZVtpXSk7CgkJfQoJCWZvciAoaW50IGkgPSAxOyBpIDw9IGs7IGkrKykgewoJCQlpbnQgdSwgdjsKCQkJc2NhbmYoIiVkJWQiLCAmdSwgJnYpOwoJCQlhW3VdLnB1c2hfYmFjayh2KTsKCQkJaW5kZWdyZWVbdl0rKzsKCQl9CgkJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKXsKCQkJaWYgKGluZGVncmVlW2ldID09IDApewoJCQkJcS5wdXNoKGkpOwoJCQkJaWR4ID0gbWluKGksaWR4KTsKCQkJCS8vZHBbaV0gPSBtYWtlW2ldOwoJCQl9CgkJfQoJCXNjYW5mKCIlZCIsICZ3KTsKCQliZnMoaWR4KTsKCQlwcmludGYoIiVkXG4iLG1ha2VbaWR4XStkcFt3XSk7Cgl9CglyZXR1cm4gMDsKfQ==