#include <bits/stdc++.h>
#define fast ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define ll long long
#define ld long double
#define pb push_back
using namespace std;
vector<vector<int>>v;
vector<int>d;
set<int>s;
int mx=0;
void depth(int node,int p){
    if(p >= 0) d[node] = d[p] + 1;
    for(int child: v[node]){
        if(child == p) continue;
        depth(child,node);
    }
}
bool o=0;
bool vis[(int)2e5+5];
void dfs(int node,int cnt)
{
    vis[node]=1;
    if(v[node].size()<=1)
    {
            if(cnt==s.size())
                o=1;
    }
    for(auto child:v[node])
    {
        if(!vis[child])
        {
            if(s.find(child)!=s.end())
            dfs(child,cnt+1);
        else dfs(child,cnt);
        }
    }
}
int main()
{
fast
int n;
cin>>n;
int x,y;
v.resize(n+2);
d.resize(n+2);
for(int i=0;i<n-1;i++)
{
    cin>>x>>y;
    v[x].pb(y);
    v[y].pb(x);
}
depth(1,-1);
int q;
cin>>q;
while(q--)
{
    int k,f;
    cin>>k;
    mx=0;
    s.clear();
    o=0;
    for(int i=0;i<k;i++)
    {
        cin>>f;
        s.insert(f);
        if(d[f]>d[mx])
        mx=f;
    }
    for(int i=1;i<=n;i++) vis[i]=0;
    dfs(mx,1);
    cout<<(o?"YES\n":"NO\n");
}
return 0;
}