#include #include #include #include using namespace std; int N,M,Q; vector >CD; int pr[1<<17]; vectorvs[1<<17]; int ans[1<<17]; void unite(int a,int b,int ansi) { int ap=pr[a],bp=pr[b]; if(ap==bp)return; if(ap==pr[0]) { for(int v:vs[bp])ans[v]=ansi; } else if(bp==pr[0]) { for(int v:vs[ap])ans[v]=ansi; } if(vs[ap].size()>N>>M>>Q; set >S; for(int i=0;i>a>>b; a--,b--; S.insert(make_pair(a,b)); } for(int i=0;i>a>>b; a--,b--; S.erase(make_pair(a,b)); CD.push_back(make_pair(a,b)); } for(int i=0;i >::iterator it=S.begin();it!=S.end();it++) { unite(it->first,it->second,-1); } for(int i=Q;i--;) { unite(CD[i].first,CD[i].second,i+1); } for(int i=1;i