from collections import deque for _ in range(int(input())): 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())) if N == 1: if B[0] == 0: print("Yes") else: print("No") continue visited = [-1]*N visited[0] = 0 que = deque() que.append(0) flag = True while que: n = que.popleft() for v in G[n]: if visited[v] == -1: visited[v] = visited[n]^1 que.append(v) elif visited[v] == visited[n]: flag = False break if not flag: break if flag: SUM = [0]*2 for i in range(N): SUM[visited[i]] += B[i] SUM[visited[i]] %= K print("Yes" if SUM[0] == SUM[1] else "No") else: if K%2 == 0: if sum(B)%2 == 0: print("Yes") else: print("No") else: print("Yes")