#pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #pragma GCC target("avx,avx2") #include #define INF 1000000001LL #define LNF 1000000000000000001LL #define MOD 1000000007LL #define MAX 502 #define long long long #define all(x) x.begin(),x.end() using namespace std; //UnionFind class UnionFind { public: vector parent; vector cnt; void init(int size) { parent.resize(size); cnt.resize(size); for(int i = 0; i> n; UnionFind uf; uf.init(n); for(int i = 0; i> a >> b; uf.merge(a,b); } for(int i = 0; i