#line 1 "a.cpp" #include #include int main() { auto solve = [&]() -> bool { int N, M, K; std::cin >> N >> M >> K; std::vector> G(N); for(int i = 0; i < M; i++) { int u, v; std::cin >> u >> v; u--, v--; G[u].push_back(v); G[v].push_back(u); } std::vector B(N); for(int i = 0; i < N; i++) { std::cin >> B[i]; } std::vector S(2, 0); auto dfs = [&](auto dfs, int v, int p, int c) -> void { S[c] = (S[c] + B[v]) % K; for(int to : G[v]) { if(to != p) dfs(dfs, to, v, c ^ 1); } }; dfs(dfs, 0, -1, 0); return S[0] == S[1]; }; int T; std::cin >> T; for(int t = 0; t < T; t++) { std::cout << (solve() ? "Yes" : "No") << std::endl; } }