classDisjointSet{
public:staticconstint MAXN =1e3+100;int n;int root[MAXN];DisjointSet(){
};DisjointSet(int _n ):n(_n){
};void ini (int n ){
this->n = n;for(int i =1; i <= n;++i ) root[i]= i;}int get (int x ){
return root[x]==x ? x : root[x]=get( root[x]);}bool merge (int x,int y ){
int rx =get( x ), ry =get( y );if( rx==ry )returnfalse;
root[ry]= rx;returntrue;}}ds;