#include using namespace std; #define all(v) v.begin(),v.end() using ll = long long; using ull = unsigned long long; using vll=vector; using vvll = vector>; vector par,Rank; struct unionfind{ ll N; vector par,Rank,Size; unionfind(ll n):N(n){ par=vector(N),Rank=vector(N,1),Size=vector(N,1); for(int i=0;iRank[a]) par[a]=b; else par[b]=a; if(Rank[a]==Rank[b]) Rank[a]++; Size[find(a)]=s; } ll size(ll a){ return Size[find(a)]; } }; int main(){ ll N; cin>>N; unionfind uf(N); vll A(N); for(int i=0;i>a>>b; uf.unite(a,b); A[a]++;A[b]++; } ll cnt=0; vll c(N+1); for(int i=0;i