int c[1001];

short d[1001][1001];


int m(int y)

{

    int x = 0;

    for(int i = 1; i <= d[y][0]; ++i)

    {

        int t = d[d[y][i]][0]? m(d[y][i]): c[d[y][i]];

        if (x < t) x = t;

    }

    d[y][0] = 0;

    return c[y] += x;

}


int main()

{

    int t, n, k, x, y;

    scanf("%d", &t);

    while(t--)

    {

        scanf("%d%d", &n, &k);

        for(y = 1; y <= n; d[y][0] = 0, c[y++] = x)

            scanf("%d", &x);

        for(; k--; d[y][++d[y][0]] = x)

            scanf("%d%d", &x, &y);

        scanf("%d", &y);

        printf("%d ", m(y));

    }

}