Chiaki 有一棵以 1 为根的树,包含 $n$ 个节点,编号为 $1$ 到 $n$。每条边都有一个正整数权值。
现在,两名玩家在树上进行游戏。他们轮流行动。在每一回合中,玩家应选择一条边并将其权值减 1。
如果一条边的权值变为 0,它将被移除。在边被移除后,树会分裂成两部分。不包含根节点的那一部分将被丢弃(永久从树中移除)。
如果一名玩家在某一回合没有边可以选择,则该玩家输掉游戏。
Chiaki 作为先手玩家,想知道她在第一回合可以选择哪些边,以确保在双方都采取最优策略的情况下她能获胜。请帮她找出这些边。
输入格式
输入包含多组测试数据。第一行包含一个整数 $T$,表示测试数据的组数。
对于每组测试数据: 第一行包含一个整数 $n$ ($1 \le n \le 10^6$):树的节点数。 接下来的 $n-1$ 行按顺序描述节点 $2, 3, \dots, n$。描述节点 $i$ 的行包含两个整数 $p_i$ 和 $w_i$ ($1 \le p_i \le n, 1 \le w_i \le 10^9$),其中 $p_i$ 表示节点 $i$ 的父节点,$w_i$ 表示节点 $i$ 与 $p_i$ 之间边的权值。
保证所有测试数据的 $n$ 之和不超过 $10^6$。
输出格式
对于每组测试数据,输出两行。
第一行包含一个整数 $m$:Chiaki 在第一回合可以选择的、能确保她在双方最优策略下获胜的边的数量。 第二行包含 $m$ 个整数,按升序排列,中间用空格隔开。如果 Chiaki 可以选择节点 $u$ 与其父节点之间的边,则 $u$ 必须出现在输出中。
样例
输入 1
3 5 1 2 1 2 1 2 1 1 5 1 2 1 2 1 2 1 2 5 1 1 2 1 3 1 4 1
输出 1
4 2 3 4 5 0 1 2