const int maxn = 1e5 + 5;
int par[maxn], rnk[maxn];
int find(int x) {
if (par[x] == x)return x;
else return par[x]=find(par[x]);
}
bool unit(int x,int y) {
int px = find(x);
int py = find(y);
if (px == py)return false;
if (rnk[px] > rnk[py]) { par[py] = px; rnk[px] = (rnk[py] += rnk[px]); }
else { par[px] = py; rnk[py] = (rnk[px] += rnk[py]); }
}
bool unit(int x,int y) {
int px = find(x);
int py = find(y);
if (px == py)return false;
if (rnk[px] < rnk[py]) swap(px, py);
par[py] = px;
rnk[px] = (rnk[py] += rnk[px]);
}