#include <bits/stdc++.h>
using namespace std;
const int maxn = 5e5 + 5;
vector<int> adj[maxn], g[maxn];
int par[maxn][20], h[maxn], sz[maxn];
int tin[maxn], tout[maxn], timeDfs = 0;
int ans[maxn];
array<int, 2> dp[maxn];
bool cmp(int u, int v){
return tin[u] < tin[v];
}
bool inside(int u, int v){
return (tin[u] <= tin[v] && tout[v] <= tout[u]);
}
void dfs(int u){
tin[u] = ++timeDfs;
sz[u] = 1;
for(int v: adj[u]){
if(v == par[u][0]) continue;
par[v][0] = u;
h[v] = h[u] + 1;
for(int i = 1; (1 << i) <= h[v]; i++) par[v][i] = par[par[v][i - 1]][i - 1];
dfs(v);
sz[u] += sz[v];
}
tout[u] = timeDfs;
}
int up(int u, int d){
assert(d >= 0);
for(int i = 0; (1 << i) <= d; i++) if((d >> i) & 1) u = par[u][i];
return u;
}
int lca(int u, int v){
if(h[u] < h[v]) swap(u, v);
u = up(u, h[u] - h[v]);
if(u == v) return u;
int lg = __lg(h[u]);
for(int i = lg; i >= 0; i--){
if(par[u][i] != par[v][i]){
u = par[u][i];
v = par[v][i];
}
}
return par[u][0];
}
void solve(int u){
for(int v: g[u]){
solve(v);
dp[u] = min(dp[u], {dp[v][0] + h[v] - h[u], dp[v][1]});
}
ans[dp[u][1]] += sz[u];
for(int v: g[u]){
if(dp[u][1] == dp[v][1]) ans[dp[u][1]] -= sz[v];
else{
int d = dp[u][0] + dp[v][0] + h[v] - h[u];
//d = min dist u -> special vertice trong subtree u
//min dist v -> special vertice trong subtree v
//dist u, v
if(d & 1) d /= 2;
else{
d /= 2;
if(dp[u][1] < dp[v][1]) d--;
}
int mid = up(v, d - dp[v][0]);
ans[dp[u][1]] -= sz[mid];
ans[dp[v][1]] += sz[mid] - sz[v];
}
}
}
void solve(){
int n; cin >> n;
for(int i = 1; i <= n - 1; i++){
int u, v; cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
}
dfs(1);
for(int i = 1; i <= n; i++) dp[i] = {(int)1e9, (int)1e9};
int q; cin >> q;
while(q--){
int k; cin >> k;
vector<int> x(k + 1), v;
for(int i = 1; i <= k; i++){
cin >> x[i];
v.push_back(x[i]);
dp[x[i]] = {0, x[i]};
}
sort(v.begin(), v.end(), cmp);
int s = v.size();
for(int i = 0; i < s - 1; i++) v.push_back(lca(v[i], v[i + 1]));
v.push_back(1);
sort(v.begin(), v.end(), cmp);
v.resize(unique(v.begin(), v.end()) - v.begin());
stack<int> st;
for(int u: v){
while(st.size() && !inside(st.top(), u)) st.pop();
if(st.size()) g[st.top()].push_back(u);
st.push(u);
}
solve(1);
for(int i = 1; i <= k; i++) cout << ans[x[i]] << " ";
cout << "\n";
while(st.size()) st.pop();
for(int u: v){
g[u].clear();
ans[u] = 0;
dp[u] = {(int)1e9, (int)1e9};
}
v.clear();
}
}
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
solve();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgbWF4biA9IDVlNSArIDU7Cgp2ZWN0b3I8aW50PiBhZGpbbWF4bl0sIGdbbWF4bl07CmludCBwYXJbbWF4bl1bMjBdLCBoW21heG5dLCBzelttYXhuXTsgCmludCB0aW5bbWF4bl0sIHRvdXRbbWF4bl0sIHRpbWVEZnMgPSAwOwoKaW50IGFuc1ttYXhuXTsKCmFycmF5PGludCwgMj4gZHBbbWF4bl07Cgpib29sIGNtcChpbnQgdSwgaW50IHYpewogICAgcmV0dXJuIHRpblt1XSA8IHRpblt2XTsKfQoKYm9vbCBpbnNpZGUoaW50IHUsIGludCB2KXsKICAgIHJldHVybiAodGluW3VdIDw9IHRpblt2XSAmJiB0b3V0W3ZdIDw9IHRvdXRbdV0pOwp9Cgp2b2lkIGRmcyhpbnQgdSl7CiAgICB0aW5bdV0gPSArK3RpbWVEZnM7CiAgICBzelt1XSA9IDE7CiAgICBmb3IoaW50IHY6IGFkalt1XSl7CiAgICAgICAgaWYodiA9PSBwYXJbdV1bMF0pIGNvbnRpbnVlOwogICAgICAgIHBhclt2XVswXSA9IHU7CiAgICAgICAgaFt2XSA9IGhbdV0gKyAxOwoKICAgICAgICBmb3IoaW50IGkgPSAxOyAoMSA8PCBpKSA8PSBoW3ZdOyBpKyspIHBhclt2XVtpXSA9IHBhcltwYXJbdl1baSAtIDFdXVtpIC0gMV07CgogICAgICAgIGRmcyh2KTsKICAgICAgICBzelt1XSArPSBzelt2XTsKICAgIH0KICAgIHRvdXRbdV0gPSB0aW1lRGZzOwp9CgppbnQgdXAoaW50IHUsIGludCBkKXsKICAgIGFzc2VydChkID49IDApOwogICAgZm9yKGludCBpID0gMDsgKDEgPDwgaSkgPD0gZDsgaSsrKSBpZigoZCA+PiBpKSAmIDEpIHUgPSBwYXJbdV1baV07CiAgICByZXR1cm4gdTsKfQoKaW50IGxjYShpbnQgdSwgaW50IHYpewogICAgaWYoaFt1XSA8IGhbdl0pIHN3YXAodSwgdik7CgogICAgdSA9IHVwKHUsIGhbdV0gLSBoW3ZdKTsKCiAgICBpZih1ID09IHYpIHJldHVybiB1OwogICAgaW50IGxnID0gX19sZyhoW3VdKTsKCiAgICBmb3IoaW50IGkgPSBsZzsgaSA+PSAwOyBpLS0pewogICAgICAgIGlmKHBhclt1XVtpXSAhPSBwYXJbdl1baV0pewogICAgICAgICAgICB1ID0gcGFyW3VdW2ldOwogICAgICAgICAgICB2ID0gcGFyW3ZdW2ldOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gcGFyW3VdWzBdOwp9CgoKdm9pZCBzb2x2ZShpbnQgdSl7CiAgICBmb3IoaW50IHY6IGdbdV0pewogICAgICAgIHNvbHZlKHYpOwogICAgICAgIGRwW3VdID0gbWluKGRwW3VdLCB7ZHBbdl1bMF0gKyBoW3ZdIC0gaFt1XSwgZHBbdl1bMV19KTsKICAgIH0KICAgIGFuc1tkcFt1XVsxXV0gKz0gc3pbdV07CiAgICBmb3IoaW50IHY6IGdbdV0pewogICAgICAgIGlmKGRwW3VdWzFdID09IGRwW3ZdWzFdKSBhbnNbZHBbdV1bMV1dIC09IHN6W3ZdOwogICAgICAgIGVsc2V7CiAgICAgICAgICAgIGludCBkID0gZHBbdV1bMF0gKyBkcFt2XVswXSArIGhbdl0gLSBoW3VdOwogICAgICAgICAgICAvL2QgPSBtaW4gZGlzdCB1IC0+IHNwZWNpYWwgdmVydGljZSB0cm9uZyBzdWJ0cmVlIHUKICAgICAgICAgICAgICAgICAvL21pbiBkaXN0IHYgLT4gc3BlY2lhbCB2ZXJ0aWNlIHRyb25nIHN1YnRyZWUgdgogICAgICAgICAgICAgICAgIC8vZGlzdCB1LCB2CiAgICAgICAgICAgIGlmKGQgJiAxKSBkIC89IDI7CiAgICAgICAgICAgIGVsc2V7CiAgICAgICAgICAgICAgICBkIC89IDI7CiAgICAgICAgICAgICAgICBpZihkcFt1XVsxXSA8IGRwW3ZdWzFdKSBkLS07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaW50IG1pZCA9IHVwKHYsIGQgLSBkcFt2XVswXSk7CiAgICAgICAgICAgIGFuc1tkcFt1XVsxXV0gLT0gc3pbbWlkXTsKICAgICAgICAgICAgYW5zW2RwW3ZdWzFdXSArPSBzelttaWRdIC0gc3pbdl07CiAgICAgICAgfQogICAgfQp9Cgp2b2lkIHNvbHZlKCl7CiAgICBpbnQgbjsgY2luID4+IG47CgogICAgZm9yKGludCBpID0gMTsgaSA8PSBuIC0gMTsgaSsrKXsKICAgICAgICBpbnQgdSwgdjsgY2luID4+IHUgPj4gdjsKICAgICAgICBhZGpbdV0ucHVzaF9iYWNrKHYpOwogICAgICAgIGFkalt2XS5wdXNoX2JhY2sodSk7CiAgICB9CgogICAgZGZzKDEpOwogICAgCiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgZHBbaV0gPSB7KGludCkxZTksIChpbnQpMWU5fTsKICAgIGludCBxOyBjaW4gPj4gcTsKICAgIHdoaWxlKHEtLSl7CiAgICAgICAgaW50IGs7IGNpbiA+PiBrOwoKICAgICAgICB2ZWN0b3I8aW50PiB4KGsgKyAxKSwgdjsKICAgICAgICBmb3IoaW50IGkgPSAxOyBpIDw9IGs7IGkrKyl7CiAgICAgICAgICAgIGNpbiA+PiB4W2ldOwogICAgICAgICAgICB2LnB1c2hfYmFjayh4W2ldKTsKICAgICAgICAgICAgZHBbeFtpXV0gPSB7MCwgeFtpXX07CiAgICAgICAgfQoKICAgICAgICBzb3J0KHYuYmVnaW4oKSwgdi5lbmQoKSwgY21wKTsKICAgICAgICBpbnQgcyA9IHYuc2l6ZSgpOwogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBzIC0gMTsgaSsrKSB2LnB1c2hfYmFjayhsY2EodltpXSwgdltpICsgMV0pKTsKCiAgICAgICAgdi5wdXNoX2JhY2soMSk7CiAgICAgICAgc29ydCh2LmJlZ2luKCksIHYuZW5kKCksIGNtcCk7CiAgICAgICAgdi5yZXNpemUodW5pcXVlKHYuYmVnaW4oKSwgdi5lbmQoKSkgLSB2LmJlZ2luKCkpOwoKICAgICAgICBzdGFjazxpbnQ+IHN0OwogICAgICAgIGZvcihpbnQgdTogdil7CiAgICAgICAgICAgIHdoaWxlKHN0LnNpemUoKSAmJiAhaW5zaWRlKHN0LnRvcCgpLCB1KSkgc3QucG9wKCk7CiAgICAgICAgICAgIGlmKHN0LnNpemUoKSkgZ1tzdC50b3AoKV0ucHVzaF9iYWNrKHUpOwogICAgICAgICAgICBzdC5wdXNoKHUpOwogICAgICAgIH0KCiAgICAgICAgc29sdmUoMSk7CiAgICAgICAgZm9yKGludCBpID0gMTsgaSA8PSBrOyBpKyspIGNvdXQgPDwgYW5zW3hbaV1dIDw8ICIgIjsKICAgICAgICBjb3V0IDw8ICJcbiI7CgogICAgICAgIHdoaWxlKHN0LnNpemUoKSkgc3QucG9wKCk7CiAgICAgICAgZm9yKGludCB1OiB2KXsKICAgICAgICAgICAgZ1t1XS5jbGVhcigpOwogICAgICAgICAgICBhbnNbdV0gPSAwOwogICAgICAgICAgICBkcFt1XSA9IHsoaW50KTFlOSwgKGludCkxZTl9OwogICAgICAgIH0KICAgICAgICB2LmNsZWFyKCk7CiAgICB9Cn0KCgogCnNpZ25lZCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIAogICAgc29sdmUoKTsKfQ==