#line 1 "a.cpp" #include #include using namespace std; #line 2 "/home/kotatsugame/library/datastructure/UF.cpp" struct UF{ int n; vectorparent,rank; UF(int n_=0):n(n_),parent(n_),rank(n_,1) { for(int i=0;i>N>>A>>B; UF ua(N),ub(N); for(int i=0;i>a>>b; a--,b--; ua.unite(a,b); } for(int i=0;i>a>>b; a--,b--; ub.unite(a,b); } vector >AU(N); for(int i=0;i&a:AU)if(!a.empty()) { long now=0; tm++; for(int u:a) { int id=ub.find(u); if(vis[id]