from collections import defaultdict def solve(): N, M, K = map(int, input().split()) adj = defaultdict(list) for _ in range(M): u, v = map(lambda x: int(x)-1, input().split()) adj[u].append(v) adj[v].append(u) B = list(map(int, input().split())) A = [0] * N def dfs(v, par): for to in adj[v]: if to == par: continue A[v] += dfs(to, v) A[v] %= K return (A[v] - B[v]) % K res = dfs(0, -1) return res == 0 T = int(input()) for _ in range(T): ans = solve() if ans: print('Yes') else: print('No')