#include using namespace std; using ll = long long; #define rep(i, n) for (int i = 0; i < (int)(n); i++) int main(){ int t; cin >> t; while(t--){ int n,m,k; cin >> n >> m >> k; vector>g(n); vectorb(n); rep(i,m){ int u,v; cin >> u >> v; u--;v--; g[u].push_back(v); g[v].push_back(u); } rep(i,n)cin >> b[i]; vectord(n,-1); bool ok=true; function dfs=[&](int i){ for(int j:g[i]){ if(d[j]==-1){ d[j]=(d[i]^1); dfs(j); }else{ if(d[i]==d[j])ok=false; } } return ; }; d[0]=0; dfs(0); ll x=0; rep(i,n){ if(d[i]==1)x-=b[i]; else x+=b[i]; } if(ok){ cout << (abs(x)%k==0?"Yes":"No") << endl; }else{ if(k%2)cout << "Yes" << endl; else { cout << (abs(x)%2==0?"Yes":"No") << endl; } } } return 0; }