#include #define rep(i,n) for(int i=0;i<(int)n;i++) #define foru(i,from,n) for(int i=from;i<(int)(n);i++) #define ford(i,from,n) for(int i=(int)(n)-1;i>=0;i--) #define vi vector #define pb push_back #define fi first #define se second #define ll long long #define _ << " " << #ifdef LOCAL #define OUT(a) {cerr<<"#"<<#a; for(auto it_a : a)cerr _ it_a; cerr<>> adj(N); for(int i=0;i+1 dfs = [&](int a, int par) { if (vis[a]) { return a; } for(auto& pii: adj[a]) { int e = pii.first; if (e == par) continue; int ret = dfs(e, a); if (ret>-1) { //trace(a); vis[a] = true; cost += pii.second; return ret; } } return -1; }; for(int q=0;q