救我!!!!!!!!!!!!!!!!!
#include <bits/stdc++.h>
using namespace std;
struct node{
vector<int> children;
int parent;
int dep;
} tr[314];
int lca(int u, int v){
if (u == -1) return v;
while (u != v){
if (tr[u].dep > tr[v].dep) u = tr[u].parent;
else v = tr[v].parent;
}
return u;
}
int main(){
tr[0].dep = 1;
int n;
cin >> n;
for (int i = 1; i < n; i++){
int x;
cin >> x;
tr[x].children.push_back(i);
tr[i].parent = x;
tr[i].dep = tr[tr[i].parent].dep + 1;
}
int q;
cin >> q;
while (q--){
int m;
cin >> m;
int ans = -1;
for (int i = 1; i <= m; i++){
int x;
cin >> x;
ans = lca(ans, x);
}
cout << ans << endl;
}
return 0;
}