#include using namespace std; typedef long long ll; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b par,size,edge; vector sum; void init(int n_){ n=n_; par.assign(n,-1); size.assign(n,1); edge.assign(n,0); sum.assign(n,0LL); for(int i=0;i>N>>M; UF uf;uf.init(N); for(int i=0;i>x; uf.sum[i]=x; } for(int i=0;i>a>>b;a--;b--; uf.unite(a,b); } ll ans=1; for(int i=0;i