具体代码#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+10;
int fa[N];
void init(int n){
for(int i=1;i<=N;i++)
fa[i]=i;
}
int find(int x){
if(x==fa[x])return x;
else return fa[x]=find(fa[x]);
}
void merge(int a,int b){
int faA=find(a),faB=find(b);
if(faA!=faB)fa[faA]=faB;
}
int main(){
int n,k,t,t1,q;
cin>>n;
init(n);
set<int>s,s2;
while(n--){
cin>>k>>t;
for(int i=0;i<k-1;i++){
cin>>t1;
merge(t,t1);
s.insert(t1);
}
s.insert(t);
}
for(auto it=s.begin();it!=s.end();it++){
s2.insert(find(*it));
}
cout<<s.size()<<' '<<s2.size()<<endl;
cin>>q;
while(q--){
cin>>t>>t1;
if(find(t)==find(t1))cout<<"Y"<<endl;
else cout<<"N"<<endl;
}
return 0;
}