```cpp
#include<iostream>
#include<vector>
using namespace std;
int fa[10010],n,m;
/*int find(int x){
while(fa[x]!=x){
x=fa[x];
}
return x;
}*/
//路径压缩
int find(int x){
if(fa[x]==x) return x;
int gen=find(fa[x]);
fa[x]=gen;
return gen;
}
void united(int a,int b){
int gena=find(a);
int genb=find(b);
if(gena!=genb){
fa[gena]=genb;
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
fa[i]=i;
}
for(int i=1,z,a,b;i<=m;i++){
cin>>z>>a>>b;
if(z==1){
united(a,b);
}
else{
if(find(a)==find(b)){
cout<<"Y"<<endl;
}
else{
cout<<"N"<<endl;
}
}
}
return 0;
}
```
by 美人为限 @ 2017-07-25 16:27:05