#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; typedef long long int ll; typedef pair P; const ll MOD=1e9+7; int sz[600010]; int par[600010]; int rk[600010]; vector gu[600010]; vector g[200010]; ll c[600010]; int n; int n0; int num[600010]; void init(int n){ for(int i=0; i>n; n0=n; for(int i=0; i>r[i]; for(int i=0; i>u>>v; u--; v--; g[u].push_back(v); g[v].push_back(u); } init(n); for(int i=0; i