import java.util.*;
public class Leetcode {
static int []par;
static int rank[];
public static void init(int n) {
par=new int[n+1];
for(int i=1;i<n+1;i++) par[i]=i;
rank=new int[n+1];
}
public static int find(int x) {
if(par[x]==x) return x;
else return par[x]=find(par[x]);
}
public static void unit(int x, int y) {
x=find(x);
y=find(y);
if(x==y) return;
if(rank[x]<rank[y]) par[x]=y;
else {
par[y]=x;
if(rank[x]==rank[y]) rank[x]++;
}
}
public static boolean issame(int x,int y) {
return find(x)==find(y);
}
}