ll@t; rep(t){ int@(n,m,k),@(u,v)--[m],@b[n],d[n]; graph g; g.setEdge(n,m,u,v); g.getDist(0,d); ll z=0; rep(i,n){ z+=d[i]&1?b[i]:-b[i]; } wt(z%k?"No":"Yes"); }