#include<bits/stdc++.h>
//#pragma GCC optimize "trapv"
//#include<ext/pb_ds/assoc_container.hpp>
//#include<ext/pb_ds/tree_policy.hpp>
#define fast_az_fuk ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define ll long long
#define lll __int128
#define ull unsigned ll
#define ld long double
#define pb push_back
#define pf push_front
#define dll deque<ll>
#define vll vector<ll>
#define vvll vector<vll>
#define pll pair<ll,ll>
#define vpll vector<pll>
#define dpll deque<pll>
#define mapll map<ll,ll>
#define umapll umap<ll,ll>
#define endl "\n"
#define all(v) v.begin(),v.end()
#define ms(a,x) memset(a,x,sizeof(a))
#define random(l,r,T) uniform_int_distribution<T>(l,r)(rng)
//#define ordered_set tree<ll, null_type,less<ll>, rb_tree_tag,tree_order_statistics_node_update>
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
//using namespace __gnu_pbds;
template<typename T> istream& operator >>(istream &in,vector<T> &v){ for(auto &x:v) in>>x; return in;}
template<typename T> ostream& operator <<(ostream &out,const vector<T> &v){ for(auto &x:v) out<<x<<' '; return out;}
template<typename T1,typename T2> istream& operator >>(istream &in,pair<T1,T2> &p){ in>>p.first>>p.second; return in;}
template<typename T1,typename T2> ostream& operator <<(ostream &out,const pair<T1,T2> &p){ out<<p.first<<' '<<p.second; return out;}
vvll adj,ind; vll level; ll cnt;
void dfs(ll node=1,ll par=1,ll lev=0){
level[node] = lev;
ind[node].pb(cnt++);
for(ll x:adj[node]){
if(x==par) continue;
dfs(x,node,lev+1);
ind[node].pb(cnt++);
}
}
class seg_tree{
private:
const ll reset = 0;
int n; bool indx; vll st;
void createTree(int,int,int,const vll&);
void update(int,int,int,const ll&,const int&,const int&);
ll query(int,int,int,const int&,const int&);
ll merge_operation(ll i,ll j){
if(level[i] < level[j]) return i;
else if(level[j] < level[i]) return j;
else return min(i,j);
}
// Lazy Propagation
vll lazy; void lazyPush(int,int,int);
public:
seg_tree(int,bool); seg_tree(int,const vll&,bool);
const ll query(int,int); const void update(int,int,ll);
};
seg_tree::seg_tree(int siz,bool indx=0) : n(siz),indx(indx){
st.resize(siz*4+1,reset); lazy.resize(siz*4+1,reset);
}
seg_tree::seg_tree(int siz,const vll &a,bool indx=0) : n(siz),indx(indx){
st.resize(siz*4+1,reset); lazy.resize(siz*4+1,reset);
createTree(indx,n-1+indx,0,a);
}
void seg_tree::createTree(int l,int r,int i,const vll &a){
if(l == r){
st[i] = a[l]; return;
}
int mid = (r-l)/2 + l;
createTree(l,mid,i*2+1,a); createTree(mid+1,r,i*2+2,a);
st[i] = merge_operation(st[i*2+1],st[i*2+2]);
}
void seg_tree::lazyPush(int i,int l,int r){}
const ll seg_tree::query(int l,int r){
return query(indx,n-1+indx,0,l,r);
}
ll seg_tree::query(int l,int r,int i,const int &tl,const int &tr){
if(r < tl || l > tr) return reset;
if(l >= tl && r <= tr) return st[i];
int mid = (r-l)/2 + l;
lazyPush(i,l,r);
return merge_operation(query(l,mid,i*2+1,tl,tr),query(mid+1,r,i*2+2,tl,tr));
}
const void seg_tree::update(int l,int r,ll val){
assert(l == r); // remove if lazy
// current implementation is not lazy
update(indx,n-1+indx,0,val,l,r);
}
void seg_tree::update(int l,int r,int i,const ll &val,const int& tl,const int& tr){
if(r < tl || l > tr) return;
if(l >= tl && r <= tr) {st[i] = val; return; }
int mid = (r-l)/2 + l;
lazyPush(i,l,r);
update(l,mid,i*2+1,val,tl,tr); update(mid+1,r,i*2+2,val,tl,tr);
st[i] = merge_operation(st[i*2+1],st[i*2+2]);
}
const bool tests = 1;
void solve_case(){
ll n; cin>>n; adj.clear(); adj.resize(n+1);
ind.clear(); ind.resize(n+1);
for(int i=1;i<n;i++){
ll u,v; cin>>u>>v;
adj[u].pb(v); adj[v].pb(u);
} level.resize(n+1); level[0]=INT_MAX; cnt=0;
dfs(); seg_tree st(cnt,0);
ll q; cin>>q; vll vis(n+1,0);
while(q--){
ll j; cin>>j;
ll node = st.query(ind[j][0],ind[j].back());
if(node == 0){
cout<<"NO\n";
}
else cout<<"YES "<<node<<endl;
if(vis[j]) continue;
for(ll i:ind[j]) st.update(i,i,j);
vis[j]=1;
}
}
int32_t main()
{
#ifdef LOCAL
freopen("error.txt", "w", stderr);
clock_t clk = clock();
#endif
fast_az_fuk
ll testcase=1; if(tests) cin>>testcase;
cout<<fixed<<setprecision(10);
for(ll test=1;test<=testcase;test++)
{//cout<<"Case #"<<test<<": ";
solve_case();
}
#ifdef LOCAL
cerr << '\n'<<"Time (in s): " << double(clock() - clk) * 1.0 / CLOCKS_PER_SEC << '\n';
#endif
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KLy8jcHJhZ21hIEdDQyBvcHRpbWl6ZSAidHJhcHYiCi8vI2luY2x1ZGU8ZXh0L3BiX2RzL2Fzc29jX2NvbnRhaW5lci5ocHA+Ci8vI2luY2x1ZGU8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KI2RlZmluZSBmYXN0X2F6X2Z1ayAgICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpOyBjb3V0LnRpZShOVUxMKTsKI2RlZmluZSBsbCAgICAgICAgICAgICAgIGxvbmcgbG9uZwojZGVmaW5lIGxsbCAgICAgICAgICAgICAgX19pbnQxMjgKI2RlZmluZSB1bGwgICAgICAgICAgICAgIHVuc2lnbmVkIGxsCiNkZWZpbmUgbGQgICAgICAgICAgICAgICBsb25nIGRvdWJsZSAKI2RlZmluZSBwYiAgICAgICAgICAgICAgIHB1c2hfYmFjayAKI2RlZmluZSBwZiAgICAgICAgICAgICAgIHB1c2hfZnJvbnQKI2RlZmluZSBkbGwgICAgICAgICAgICAgIGRlcXVlPGxsPiAKI2RlZmluZSB2bGwgICAgICAgICAgICAgIHZlY3RvcjxsbD4KI2RlZmluZSB2dmxsICAgICAgICAgICAgIHZlY3Rvcjx2bGw+IAojZGVmaW5lIHBsbCAgICAgICAgICAgICAgcGFpcjxsbCxsbD4gCiNkZWZpbmUgdnBsbCAgICAgICAgICAgICB2ZWN0b3I8cGxsPgojZGVmaW5lIGRwbGwgICAgICAgICAgICAgZGVxdWU8cGxsPgojZGVmaW5lIG1hcGxsICAgICAgICAgICAgbWFwPGxsLGxsPgojZGVmaW5lIHVtYXBsbCAgICAgICAgICAgdW1hcDxsbCxsbD4KI2RlZmluZSBlbmRsICAgICAgICAgICAgICJcbiIgCiNkZWZpbmUgYWxsKHYpICAgICAgICAgICB2LmJlZ2luKCksdi5lbmQoKSAKI2RlZmluZSBtcyhhLHgpICAgICAgICAgIG1lbXNldChhLHgsc2l6ZW9mKGEpKQojZGVmaW5lIHJhbmRvbShsLHIsVCkgICAgdW5pZm9ybV9pbnRfZGlzdHJpYnV0aW9uPFQ+KGwscikocm5nKQoKCi8vI2RlZmluZSBvcmRlcmVkX3NldCB0cmVlPGxsLCBudWxsX3R5cGUsbGVzczxsbD4sIHJiX3RyZWVfdGFnLHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKbXQxOTkzNyBybmcoY2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpKTsKLy91c2luZyBuYW1lc3BhY2UgX19nbnVfcGJkczsKCnRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlzdHJlYW0mIG9wZXJhdG9yID4+KGlzdHJlYW0gJmluLHZlY3RvcjxUPiAmdil7IGZvcihhdXRvICZ4OnYpIGluPj54OyByZXR1cm4gaW47fQp0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBvc3RyZWFtJiBvcGVyYXRvciA8PChvc3RyZWFtICZvdXQsY29uc3QgdmVjdG9yPFQ+ICZ2KXsgZm9yKGF1dG8gJng6dikgb3V0PDx4PDwnICc7IHJldHVybiBvdXQ7fQp0ZW1wbGF0ZTx0eXBlbmFtZSBUMSx0eXBlbmFtZSBUMj4gaXN0cmVhbSYgb3BlcmF0b3IgPj4oaXN0cmVhbSAmaW4scGFpcjxUMSxUMj4gJnApeyBpbj4+cC5maXJzdD4+cC5zZWNvbmQ7IHJldHVybiBpbjt9CnRlbXBsYXRlPHR5cGVuYW1lIFQxLHR5cGVuYW1lIFQyPiBvc3RyZWFtJiBvcGVyYXRvciA8PChvc3RyZWFtICZvdXQsY29uc3QgcGFpcjxUMSxUMj4gJnApeyBvdXQ8PHAuZmlyc3Q8PCcgJzw8cC5zZWNvbmQ7IHJldHVybiBvdXQ7fQp2dmxsIGFkaixpbmQ7IHZsbCBsZXZlbDsgbGwgY250Owp2b2lkIGRmcyhsbCBub2RlPTEsbGwgcGFyPTEsbGwgbGV2PTApewogICAgbGV2ZWxbbm9kZV0gPSBsZXY7CiAgICBpbmRbbm9kZV0ucGIoY250KyspOyAKICAgIGZvcihsbCB4OmFkaltub2RlXSl7CiAgICAgICAgaWYoeD09cGFyKSBjb250aW51ZTsKICAgICAgICBkZnMoeCxub2RlLGxldisxKTsKICAgICAgICBpbmRbbm9kZV0ucGIoY250KyspOwogICAgfQp9CmNsYXNzIHNlZ190cmVlewpwcml2YXRlOgogICAgY29uc3QgbGwgcmVzZXQgPSAwOwogICAgaW50IG47IGJvb2wgaW5keDsgdmxsIHN0OwogICAgdm9pZCBjcmVhdGVUcmVlKGludCxpbnQsaW50LGNvbnN0IHZsbCYpOyAKICAgIHZvaWQgdXBkYXRlKGludCxpbnQsaW50LGNvbnN0IGxsJixjb25zdCBpbnQmLGNvbnN0IGludCYpOyAKICAgIGxsIHF1ZXJ5KGludCxpbnQsaW50LGNvbnN0IGludCYsY29uc3QgaW50Jik7IAogICAgbGwgbWVyZ2Vfb3BlcmF0aW9uKGxsIGksbGwgail7CiAgICAgICAgaWYobGV2ZWxbaV0gPCBsZXZlbFtqXSkgcmV0dXJuIGk7CiAgICAgICAgZWxzZSBpZihsZXZlbFtqXSA8IGxldmVsW2ldKSByZXR1cm4gajsKICAgICAgICBlbHNlIHJldHVybiBtaW4oaSxqKTsKICAgIH0KICAgIC8vIExhenkgUHJvcGFnYXRpb24KICAgIHZsbCBsYXp5OyB2b2lkIGxhenlQdXNoKGludCxpbnQsaW50KTsKcHVibGljOgogICAgc2VnX3RyZWUoaW50LGJvb2wpOyBzZWdfdHJlZShpbnQsY29uc3QgdmxsJixib29sKTsgCiAgICBjb25zdCBsbCBxdWVyeShpbnQsaW50KTsgY29uc3Qgdm9pZCB1cGRhdGUoaW50LGludCxsbCk7Cn07CgpzZWdfdHJlZTo6c2VnX3RyZWUoaW50IHNpeixib29sIGluZHg9MCkgOiBuKHNpeiksaW5keChpbmR4KXsKICAgIHN0LnJlc2l6ZShzaXoqNCsxLHJlc2V0KTsgbGF6eS5yZXNpemUoc2l6KjQrMSxyZXNldCk7Cn0KCnNlZ190cmVlOjpzZWdfdHJlZShpbnQgc2l6LGNvbnN0IHZsbCAmYSxib29sIGluZHg9MCkgOiBuKHNpeiksaW5keChpbmR4KXsKICAgIHN0LnJlc2l6ZShzaXoqNCsxLHJlc2V0KTsgbGF6eS5yZXNpemUoc2l6KjQrMSxyZXNldCk7CiAgICBjcmVhdGVUcmVlKGluZHgsbi0xK2luZHgsMCxhKTsKfQoKdm9pZCBzZWdfdHJlZTo6Y3JlYXRlVHJlZShpbnQgbCxpbnQgcixpbnQgaSxjb25zdCB2bGwgJmEpewogICAgaWYobCA9PSByKXsKICAgICAgICBzdFtpXSA9IGFbbF07IHJldHVybjsKICAgIH0KICAgIGludCBtaWQgPSAoci1sKS8yICsgbDsKICAgIGNyZWF0ZVRyZWUobCxtaWQsaSoyKzEsYSk7IGNyZWF0ZVRyZWUobWlkKzEscixpKjIrMixhKTsKICAgIHN0W2ldID0gbWVyZ2Vfb3BlcmF0aW9uKHN0W2kqMisxXSxzdFtpKjIrMl0pOwp9Cgp2b2lkIHNlZ190cmVlOjpsYXp5UHVzaChpbnQgaSxpbnQgbCxpbnQgcil7fQoKY29uc3QgbGwgc2VnX3RyZWU6OnF1ZXJ5KGludCBsLGludCByKXsKICAgIHJldHVybiBxdWVyeShpbmR4LG4tMStpbmR4LDAsbCxyKTsKfQoKbGwgc2VnX3RyZWU6OnF1ZXJ5KGludCBsLGludCByLGludCBpLGNvbnN0IGludCAmdGwsY29uc3QgaW50ICZ0cil7CiAgICBpZihyIDwgdGwgfHwgbCA+IHRyKSByZXR1cm4gcmVzZXQ7CiAgICBpZihsID49IHRsICYmIHIgPD0gdHIpIHJldHVybiBzdFtpXTsKICAgIGludCBtaWQgPSAoci1sKS8yICsgbDsKICAgIGxhenlQdXNoKGksbCxyKTsKICAgIHJldHVybiBtZXJnZV9vcGVyYXRpb24ocXVlcnkobCxtaWQsaSoyKzEsdGwsdHIpLHF1ZXJ5KG1pZCsxLHIsaSoyKzIsdGwsdHIpKTsKfQoKY29uc3Qgdm9pZCBzZWdfdHJlZTo6dXBkYXRlKGludCBsLGludCByLGxsIHZhbCl7CiAgICBhc3NlcnQobCA9PSByKTsgLy8gcmVtb3ZlIGlmIGxhenkKICAgIC8vIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gaXMgbm90IGxhenkKICAgIHVwZGF0ZShpbmR4LG4tMStpbmR4LDAsdmFsLGwscik7Cn0KCnZvaWQgc2VnX3RyZWU6OnVwZGF0ZShpbnQgbCxpbnQgcixpbnQgaSxjb25zdCBsbCAmdmFsLGNvbnN0IGludCYgdGwsY29uc3QgaW50JiB0cil7CiAgICBpZihyIDwgdGwgfHwgbCA+IHRyKSByZXR1cm47CiAgICBpZihsID49IHRsICYmIHIgPD0gdHIpIHtzdFtpXSA9IHZhbDsgcmV0dXJuOyB9CiAgICBpbnQgbWlkID0gKHItbCkvMiArIGw7CiAgICBsYXp5UHVzaChpLGwscik7CiAgICB1cGRhdGUobCxtaWQsaSoyKzEsdmFsLHRsLHRyKTsgdXBkYXRlKG1pZCsxLHIsaSoyKzIsdmFsLHRsLHRyKTsKICAgIHN0W2ldID0gbWVyZ2Vfb3BlcmF0aW9uKHN0W2kqMisxXSxzdFtpKjIrMl0pOwp9ICAgCmNvbnN0IGJvb2wgdGVzdHMgPSAxOwp2b2lkIHNvbHZlX2Nhc2UoKXsKICAgIGxsIG47IGNpbj4+bjsgYWRqLmNsZWFyKCk7IGFkai5yZXNpemUobisxKTsKICAgIGluZC5jbGVhcigpOyBpbmQucmVzaXplKG4rMSk7CiAgICBmb3IoaW50IGk9MTtpPG47aSsrKXsKICAgICAgICBsbCB1LHY7IGNpbj4+dT4+djsKICAgICAgICBhZGpbdV0ucGIodik7IGFkalt2XS5wYih1KTsKICAgIH0gbGV2ZWwucmVzaXplKG4rMSk7IGxldmVsWzBdPUlOVF9NQVg7IGNudD0wOwogICAgZGZzKCk7IHNlZ190cmVlIHN0KGNudCwwKTsKICAgIGxsIHE7IGNpbj4+cTsgdmxsIHZpcyhuKzEsMCk7CiAgICB3aGlsZShxLS0pewogICAgICAgIGxsIGo7IGNpbj4+ajsKICAgICAgICBsbCBub2RlID0gc3QucXVlcnkoaW5kW2pdWzBdLGluZFtqXS5iYWNrKCkpOwogICAgICAgIGlmKG5vZGUgPT0gMCl7CiAgICAgICAgICAgIGNvdXQ8PCJOT1xuIjsKICAgICAgICB9CiAgICAgICAgZWxzZSBjb3V0PDwiWUVTICI8PG5vZGU8PGVuZGw7CiAgICAgICAgaWYodmlzW2pdKSBjb250aW51ZTsKICAgICAgICBmb3IobGwgaTppbmRbal0pIHN0LnVwZGF0ZShpLGksaik7CiAgICAgICAgdmlzW2pdPTE7CiAgICB9Cn0KCmludDMyX3QgbWFpbigpCnsKICAgICNpZmRlZiBMT0NBTAogICAgICAgIGZyZW9wZW4oImVycm9yLnR4dCIsICJ3Iiwgc3RkZXJyKTsKICAgICAgICBjbG9ja190IGNsayA9IGNsb2NrKCk7CiAgICAjZW5kaWYKICAgIGZhc3RfYXpfZnVrCiAgICBsbCB0ZXN0Y2FzZT0xOyBpZih0ZXN0cykgY2luPj50ZXN0Y2FzZTsKICAgIGNvdXQ8PGZpeGVkPDxzZXRwcmVjaXNpb24oMTApOwogICAgZm9yKGxsIHRlc3Q9MTt0ZXN0PD10ZXN0Y2FzZTt0ZXN0KyspCiAgICB7Ly9jb3V0PDwiQ2FzZSAjIjw8dGVzdDw8IjogIjsKICAgICAgICBzb2x2ZV9jYXNlKCk7CiAgICB9CiAgICAjaWZkZWYgTE9DQUwKICAgICAgICBjZXJyIDw8ICdcbic8PCJUaW1lIChpbiBzKTogIiA8PCBkb3VibGUoY2xvY2soKSAtIGNsaykgKiAxLjAgLyBDTE9DS1NfUEVSX1NFQyA8PCAnXG4nOwogICAgI2VuZGlmCiAgICByZXR1cm4gMDsKfQ==