#include <bits/stdc++.h>
#define se second
#define fi first
#define pb push_back
#define get_bit(mask,j) (mask>>j)&1
using namespace std;
using ll = long long;
using pii = pair<int,int>;
using pll = pair<ll,ll>;
const int maxn = 2e6+5;
const int mod = 1e9+7;
const ll inf = 1e18;
void read()
{
#define name "colorful"
cin.tie(0)->ios_base::sync_with_stdio(0);cout.tie(0);
if(fopen(name".INP","r")){
freopen(name".INP","r",stdin);
freopen(name".OUT","w",stdout);
}
}
int deg[maxn],color[maxn];
vector<int> adj[maxn];
void solve()
{
int n;
cin >> n;
for(int i = 1,u,v; i < n; i++){
cin >> u >> v;
adj[u].pb(v);
adj[v].pb(u);
}
for(int i = 1; i <= n; i++){
cin >> color[i];
}
int remove = 0;
for(int i = 1; i <= n; i++){
for(auto &v : adj[i]){
if(color[i] != color[v]){
deg[i]++;
deg[v]++;
remove++;
}
}
}
vector<int> res;
for(int i = 1; i <= n; i++){
if(deg[i] == remove) res.pb(i);
}
if(res.empty()) cout << "NO";
else{
sort(res.begin(),res.end());
cout << "YES\n";
for(auto &x : res) cout << x << " ";
}
}
signed main()
{
read();
int subtask;
cin >> subtask;
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBnZXRfYml0KG1hc2ssaikgKG1hc2s+PmopJjEKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgbGwgPSBsb25nIGxvbmc7CnVzaW5nIHBpaSA9IHBhaXI8aW50LGludD47CnVzaW5nIHBsbCA9IHBhaXI8bGwsbGw+Owpjb25zdCBpbnQgbWF4biA9IDJlNis1Owpjb25zdCBpbnQgbW9kID0gMWU5Kzc7CmNvbnN0IGxsIGluZiA9IDFlMTg7Cgp2b2lkIHJlYWQoKQp7CiAgICAjZGVmaW5lIG5hbWUgImNvbG9yZnVsIgogICAgY2luLnRpZSgwKS0+aW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjb3V0LnRpZSgwKTsKICAgIGlmKGZvcGVuKG5hbWUiLklOUCIsInIiKSl7CiAgICAgICAgZnJlb3BlbihuYW1lIi5JTlAiLCJyIixzdGRpbik7CiAgICAgICAgZnJlb3BlbihuYW1lIi5PVVQiLCJ3IixzdGRvdXQpOwogICAgfQp9CgppbnQgZGVnW21heG5dLGNvbG9yW21heG5dOwp2ZWN0b3I8aW50PiBhZGpbbWF4bl07Cgp2b2lkIHNvbHZlKCkKewoJaW50IG47CgljaW4gPj4gbjsKCWZvcihpbnQgaSA9IDEsdSx2OyBpIDwgbjsgaSsrKXsKCQljaW4gPj4gdSA+PiB2OwoJCWFkalt1XS5wYih2KTsKCQlhZGpbdl0ucGIodSk7Cgl9Cglmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CgkJY2luID4+IGNvbG9yW2ldOwoJfQoJaW50IHJlbW92ZSA9IDA7Cglmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CgkJZm9yKGF1dG8gJnYgOiBhZGpbaV0pewoJCQlpZihjb2xvcltpXSAhPSBjb2xvclt2XSl7CgkJCQlkZWdbaV0rKzsKCQkJCWRlZ1t2XSsrOwoJCQkJcmVtb3ZlKys7CgkJCX0KCQl9Cgl9Cgl2ZWN0b3I8aW50PiByZXM7Cglmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CgkJaWYoZGVnW2ldID09IHJlbW92ZSkgcmVzLnBiKGkpOwoJfQoJaWYocmVzLmVtcHR5KCkpIGNvdXQgPDwgIk5PIjsKCWVsc2V7CgkJc29ydChyZXMuYmVnaW4oKSxyZXMuZW5kKCkpOwoJCWNvdXQgPDwgIllFU1xuIjsKCQlmb3IoYXV0byAmeCA6IHJlcykgY291dCA8PCB4IDw8ICIgIjsKCX0KfQoKc2lnbmVkIG1haW4oKQp7CiAgICByZWFkKCk7CiAgICBpbnQgc3VidGFzazsKICAgIGNpbiA+PiBzdWJ0YXNrOwogICAgc29sdmUoKTsKICAgIHJldHVybiAwOwp9