import sys sys.setrecursionlimit(10**7) T = int(input()) for _ in range(T): N, M, K = map(int, input().split()) g = [[] for _ in range(N)] for _ in range(M): u, v = map(int, input().split()) u, v = u - 1, v - 1 g[u].append(v) g[v].append(u) B = list(map(int, input().split())) def dfs(u, p): cnt = 0 for v in g[u]: if v == p: continue cnt += dfs(v, u) cnt %= K if cnt > B[u]: B[u] += K return B[u] - cnt print("Yes" if dfs(0, -1) == 0 else "No")