#include<stdio.h>
using namespace std;
const int N = 100010;
int n, m;
int p[N];
//路劲压缩优化是指在找到元素的祖宗节点后,把路径上的所有元素都指向祖宗节点
int find(int x)//返回元素的祖宗节点(即所在集合)+路径压缩优化
{
if (p[x] != x)p[x] = find(p[x]);
return p[x];
}
int main()
{
scanf("%d", &n);
//随便初始化几个集合
for (int i = 1; i <= n; i++)
{
p[i] = i;
}
int a,b;
scanf("%d %d",&b,&a);
//两个集合合并既把b元素所在集合的祖宗节点连接在a元素所在集合的祖宗节点下
p[find(b)] = find(a);
}