#include <iostream>
using namespace std;
int father[MAXN],rankk[MAXN];
void initial(){
for(int i=1;i<=n;i++){
father[i]=i;
rankk[i]=0;
}
}
int Find(int x){
if(father[x]==x) return x;
return father[x]=Find(father[x]);
}
void Union(int x,int y){
x=Find(x); y=Find(y);
if(x==y) return;
if(rankk[x]<rankk[y])
father[x]=y;
else{
rankk[y]=x;
if(rankk[x]==rankk[y])
rankk[x]++;
}
}
int main()
{
cout << "Hello world!" << endl;
return 0;
}
using namespace std;
int father[MAXN],rankk[MAXN];
void initial(){
for(int i=1;i<=n;i++){
father[i]=i;
rankk[i]=0;
}
}
int Find(int x){
if(father[x]==x) return x;
return father[x]=Find(father[x]);
}
void Union(int x,int y){
x=Find(x); y=Find(y);
if(x==y) return;
if(rankk[x]<rankk[y])
father[x]=y;
else{
rankk[y]=x;
if(rankk[x]==rankk[y])
rankk[x]++;
}
}
int main()
{
cout << "Hello world!" << endl;
return 0;
}