const int N = int(1e5) + 9, M = N*2;
int hd[N], suc[M], to[M], ww[M/2];
int f1[N], f2[N], p1[N], p2[N], n, K;
#define bb to[i]
#define aa to[i^1]
#define w ww[i/2]
#define v bb
void dfs(int u = 1, int p = 0){
f1[u] = f2[u] = 0;
p1[u] = p2[u] = 0;
REP_G(i, u) if (v != p){
……