#define LIMIT 10000 int uniroot[LIMIT+10],unicnt[LIMIT+10]; void ufinit(int n){for(int i=0;iroot(b))a^=b^=a^=b; uni(b,a); } } for(int i=1;i<=n;i++)printf("%d\n",root(i)); }