#include<bits/stdc++.h>
using namespace std;
int head[305],q,m,p[305],n;
bool k[305][305];
void dfs(int u,int x)
{
k[u][x]=true;
if(u==0) return;
dfs(head[u],x);
}
int main()
{
cin>>n;
for(int i=1;i<n;i++) cin>>head[i];
cin>>q;
for(int i=1;i<n;i++) dfs(i,i);
while(q--)
{
cin>>m;
for(int i=1;i<=m;i++)
cin>>p[i];
for(int i=n-1;i>=0;i--)
{
bool ok=true;
for(int j=1;j<=m;j++)
if(k[i][p[j]]==false)
ok=false;
if(ok==true)
{
cout<<i<<endl;
break;
}
}
}
return 0;
}