#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
const int inf = 1e9 + 7;
int n, q, a[N];
vector<int> adj[N];
vector<int> V;
int cnt[N];
bool check[N];
//
int timer = 0, in[N], out[N], par[N][18], depth[N];
void dfs(int u) {
in[u] = ++timer;
for(auto v : adj[u]) {
if(v == par[u][0]) continue;
par[v][0] = u;
depth[v] = depth[u] + 1;
for(int i = 1; i <= 17; i++) par[v][i] = par[par[v][i - 1]][i - 1];
dfs(v);
}
out[u] = timer;
}
int lca(int u, int v) {
if(depth[u] < depth[v]) swap(u, v);
for(int i = 17; i >= 0; i--) if(((depth[u] - depth[v]) >> i) & 1) u = par[u][i];
if(u == v) return u;
for(int i = 17; i >= 0; i--) {
if(par[u][i] != par[v][i]) u = par[u][i], v = par[v][i];
}
return par[u][0];
}
bool inside(int u, int v) {
return in[u] <= in[v] && out[u] >= out[v];
}
//
long long dp[N];
vector<int> g[N];
void calc() {
vector<int> &node = V;
if(node.empty()) return;
sort(node.begin(), node.end(), [&] (int &a, int &b) {
return in[a] < in[b];
});
int k = node.size();
for(int i = 0; i < k - 1; i++) node.push_back(lca(node[i], node[i + 1]));
sort(node.begin(), node.end(), [&] (int &a, int &b) {
return in[a] < in[b];
});
node.erase(unique(node.begin(), node.end()), node.end());
k = node.size();
stack<int> st;
st.push(node[0]);
for(int i = 1; i < k; i++) {
while(!inside(st.top(), node[i])) st.pop();
g[st.top()].push_back(node[i]);
if(check[st.top()] && check[node[i]] && depth[st.top()] + 1 == depth[node[i]]) {
cout << -1 << '\n';
return;
}
st.push(node[i]);
}
int ans = 0;
for(auto x:node)
{
cout<<x<<endl;
for(auto u:g[x]) cout<<u<<" ";
cout<<endl;
}
cout<<endl;
reverse(node.begin(), node.end());
for(auto u : node) {
for(auto v : g[u]) cnt[u] += cnt[v];
if(check[u]) {
for(auto v : g[u]) if(cnt[v] > 0) ans++;
cnt[u] = 1;
}
else {
if(cnt[u] > 1) ans++, cnt[u] = 0;
}
}
cout << ans << '\n';
for(int i = 0; i < k; i++) g[node[i]].clear(), cnt[node[i]] = 0, check[node[i]] = 0;
}
void Solve() {
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);
cin >> q;
while(q--) {
int k; cin >> k;
V.clear();
for(int i = 1; i <= k; i++) {
int x; cin >> x;
V.push_back(x);
cnt[x] = check[x] = 1;
}
calc();
for(auto u : V) g[u].clear(), cnt[u] = check[u] = 0;
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
Solve();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBOID0gMWU1ICsgNTsKY29uc3QgaW50IGluZiA9IDFlOSArIDc7CmludCBuLCBxLCBhW05dOwp2ZWN0b3I8aW50PiBhZGpbTl07CnZlY3RvcjxpbnQ+IFY7CmludCBjbnRbTl07CmJvb2wgY2hlY2tbTl07Ci8vCmludCB0aW1lciA9IDAsIGluW05dLCBvdXRbTl0sIHBhcltOXVsxOF0sIGRlcHRoW05dOwp2b2lkIGRmcyhpbnQgdSkgewogICAgaW5bdV0gPSArK3RpbWVyOwogICAgZm9yKGF1dG8gdiA6IGFkalt1XSkgewogICAgICAgIGlmKHYgPT0gcGFyW3VdWzBdKSBjb250aW51ZTsKICAgICAgICBwYXJbdl1bMF0gPSB1OwogICAgICAgIGRlcHRoW3ZdID0gZGVwdGhbdV0gKyAxOwogICAgICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gMTc7IGkrKykgcGFyW3ZdW2ldID0gcGFyW3Bhclt2XVtpIC0gMV1dW2kgLSAxXTsKICAgICAgICBkZnModik7CiAgICB9CiAgICBvdXRbdV0gPSB0aW1lcjsKfQppbnQgbGNhKGludCB1LCBpbnQgdikgewogICAgaWYoZGVwdGhbdV0gPCBkZXB0aFt2XSkgc3dhcCh1LCB2KTsKICAgIGZvcihpbnQgaSA9IDE3OyBpID49IDA7IGktLSkgaWYoKChkZXB0aFt1XSAtIGRlcHRoW3ZdKSA+PiBpKSAmIDEpIHUgPSBwYXJbdV1baV07CiAgICBpZih1ID09IHYpIHJldHVybiB1OwogICAgZm9yKGludCBpID0gMTc7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgaWYocGFyW3VdW2ldICE9IHBhclt2XVtpXSkgdSA9IHBhclt1XVtpXSwgdiA9IHBhclt2XVtpXTsKICAgIH0KICAgIHJldHVybiBwYXJbdV1bMF07Cn0KYm9vbCBpbnNpZGUoaW50IHUsIGludCB2KSB7CiAgICByZXR1cm4gaW5bdV0gPD0gaW5bdl0gJiYgb3V0W3VdID49IG91dFt2XTsKfQovLwpsb25nIGxvbmcgZHBbTl07CnZlY3RvcjxpbnQ+IGdbTl07CnZvaWQgY2FsYygpIHsKICAgIHZlY3RvcjxpbnQ+ICZub2RlID0gVjsKICAgIGlmKG5vZGUuZW1wdHkoKSkgcmV0dXJuOwogICAgc29ydChub2RlLmJlZ2luKCksIG5vZGUuZW5kKCksIFsmXSAoaW50ICZhLCBpbnQgJmIpIHsKICAgICAgICAgcmV0dXJuIGluW2FdIDwgaW5bYl07CiAgICB9KTsKICAgIGludCBrID0gbm9kZS5zaXplKCk7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgayAtIDE7IGkrKykgbm9kZS5wdXNoX2JhY2sobGNhKG5vZGVbaV0sIG5vZGVbaSArIDFdKSk7CiAgICBzb3J0KG5vZGUuYmVnaW4oKSwgbm9kZS5lbmQoKSwgWyZdIChpbnQgJmEsIGludCAmYikgewogICAgICAgICByZXR1cm4gaW5bYV0gPCBpbltiXTsKICAgIH0pOwogICAgbm9kZS5lcmFzZSh1bmlxdWUobm9kZS5iZWdpbigpLCBub2RlLmVuZCgpKSwgbm9kZS5lbmQoKSk7CiAgICBrID0gbm9kZS5zaXplKCk7CiAgICBzdGFjazxpbnQ+IHN0OwogICAgc3QucHVzaChub2RlWzBdKTsKICAgIGZvcihpbnQgaSA9IDE7IGkgPCBrOyBpKyspIHsKICAgICAgICB3aGlsZSghaW5zaWRlKHN0LnRvcCgpLCBub2RlW2ldKSkgc3QucG9wKCk7CiAgICAgICAgZ1tzdC50b3AoKV0ucHVzaF9iYWNrKG5vZGVbaV0pOwogICAgICAgIGlmKGNoZWNrW3N0LnRvcCgpXSAmJiBjaGVja1tub2RlW2ldXSAmJiBkZXB0aFtzdC50b3AoKV0gKyAxID09IGRlcHRoW25vZGVbaV1dKSB7CiAgICAgICAgICAgIGNvdXQgPDwgLTEgPDwgJ1xuJzsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBzdC5wdXNoKG5vZGVbaV0pOwogICAgfQogICAgaW50IGFucyA9IDA7CiAgICBmb3IoYXV0byB4Om5vZGUpIAogICAgewogICAgCWNvdXQ8PHg8PGVuZGw7CiAgICAJZm9yKGF1dG8gdTpnW3hdKSBjb3V0PDx1PDwiICI7CiAgICAJY291dDw8ZW5kbDsKICAgIH0KICAgIGNvdXQ8PGVuZGw7CiAgICByZXZlcnNlKG5vZGUuYmVnaW4oKSwgbm9kZS5lbmQoKSk7CiAgICBmb3IoYXV0byB1IDogbm9kZSkgewogICAgICAgIGZvcihhdXRvIHYgOiBnW3VdKSBjbnRbdV0gKz0gY250W3ZdOwogICAgICAgIGlmKGNoZWNrW3VdKSB7CiAgICAgICAgICAgIGZvcihhdXRvIHYgOiBnW3VdKSBpZihjbnRbdl0gPiAwKSBhbnMrKzsKICAgICAgICAgICAgY250W3VdID0gMTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlmKGNudFt1XSA+IDEpIGFucysrLCBjbnRbdV0gPSAwOwogICAgICAgIH0KICAgICB9CiAgICBjb3V0IDw8IGFucyA8PCAnXG4nOwogICAgZm9yKGludCBpID0gMDsgaSA8IGs7IGkrKykgZ1tub2RlW2ldXS5jbGVhcigpLCBjbnRbbm9kZVtpXV0gPSAwLCBjaGVja1tub2RlW2ldXSA9IDA7Cn0Kdm9pZCBTb2x2ZSgpIHsKICAgIGNpbiA+PiBuOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBuIC0gMTsgaSsrKSB7CiAgICAgICAgaW50IHUsIHY7IGNpbiA+PiB1ID4+IHY7CiAgICAgICAgYWRqW3VdLnB1c2hfYmFjayh2KTsKICAgICAgICBhZGpbdl0ucHVzaF9iYWNrKHUpOwogICAgfQogICAgZGZzKDEpOwogICAgY2luID4+IHE7CiAgICB3aGlsZShxLS0pIHsKICAgICAgICBpbnQgazsgY2luID4+IGs7CiAgICAgICAgVi5jbGVhcigpOwogICAgICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gazsgaSsrKSB7CiAgICAgICAgICAgIGludCB4OyBjaW4gPj4geDsKICAgICAgICAgICAgVi5wdXNoX2JhY2soeCk7CiAgICAgICAgICAgIGNudFt4XSA9IGNoZWNrW3hdID0gMTsKICAgICAgICB9CiAgICAgICAgY2FsYygpOwogICAgICAgIGZvcihhdXRvIHUgOiBWKSAgZ1t1XS5jbGVhcigpLCBjbnRbdV0gPSBjaGVja1t1XSA9IDA7CiAgICB9Cgp9CmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOyBjb3V0LnRpZShOVUxMKTsKICAgIFNvbHZlKCk7Cn0K