#include<iostream>
using namespace std;
const int MAXN=100001;
int fa[MAXN];
int getfather(int x)
{
int a=x;
while(x!=fa[x]){
x=fa[x];
}
while(a!=fa[a]){
int z=a;
a=fa[a];
fa[z]=x;
}
return x;
}
void _union(int a,int b){
int aa=getfather(a);
int bb=getfather(b);
if(aa!=bb) fa[aa]=bb;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("in.txt","r",stdin);
#endif
int isbird[MAXN]={};
int isroot[MAXN]={};
for(int i=0;i<=MAXN;i++){
fa[i]=i;
}
int n;
cin>>n;
for(int i=0;i<n;i++){
int k,temp;
cin>>k>>temp;
isbird[temp]=1;
for(int t=0;t<k-1;t++){
int temp1;
cin>>temp1;
isbird[temp1]=1;
if(getfather(temp)!=getfather(temp1)){
_union(temp,temp1);
}
}
}
int cntbird=0;
for(int i=0;i<=MAXN;i++){
if(isbird[i]==1){
cntbird++;
isroot[getfather(i)]=1;
}
}
int cntroot=0;
for(int i=0;i<=MAXN;i++){
if(isroot[i]==1) cntroot++;
}
cout<<cntroot<<' '<<cntbird<<endl;
int q;
cin>>q;
for(int p=0;p<q;p++){
int ii,iii;
cin>>ii>>iii;
printf("%s\n",(getfather(ii)==getfather(iii))?"Yes":"No");
}
return 0;
}