$N$ 個の頂点(番号 $1$ から $N$)からなる木が与えられます。木の $i$ 番目の辺は頂点 $u_i$ と $v_i$ を結んでいます。最初、各 $i$($1 \le i \le N$)について、頂点 $i$ には $A_i = 1$ のとき石が 1 個置かれており、$A_i = 0$ のとき石は置かれていません。
あなたは次の操作を繰り返し行うことができます:
- まだ選ばれていない辺であって、その両端点のちょうど一方に石が置かれているものを 1 つ選び、その石をもう一方の端点へ移動させる。
操作をちょうど $N - 1$ 回行うことができるかどうかを判定してください。可能な場合は、辺を選ぶ順序を出力してください。
入力
入力は 1 つ以上のテストケースを含みます。入力の 1 行目にはテストケースの個数を表す整数 $T$($1 \le T \le 10^5$)が与えられます。続いて $T$ 個のテストケースがそれぞれ以下の形式で与えられます。
$$ \begin{aligned} &N \\ &u_1 \ v_1 \\ &u_2 \ v_2 \\ &\vdots \\ &u_{N-1} \ v_{N-1} \\ &A_1 \ A_2 \ \ldots \ A_N \end{aligned} $$
1 行目には頂点の個数を表す整数 $N$($2 \le N \le 2 \times 10^5$)が与えられます。
各 $i$($1 \le i \le N - 1$)について、続く行のうち $i$ 行目(全 $N - 1$ 行)には空白で区切られた 2 つの整数 $u_i$ と $v_i$($1 \le u_i, v_i \le N$)が与えられ、$i$ 番目の辺が頂点 $u_i$ と $v_i$ を結んでいることを表します。与えられるグラフは木であることが保証されます。
最後の行には空白で区切られた $N$ 個の整数 $A_1, A_2, \ldots, A_N$($A_i \in \{0, 1\}$)が与えられます。$A_i$ は最初に頂点 $i$ に石が置かれているかどうかを表します。
すべてのテストケースにおける $N$ の総和は $2 \times 10^5$ を超えません。
出力
各テストケースについて、以下のように答えを出力してください。
操作をちょうど $N - 1$ 回行うことが不可能な場合は、1 行に No と出力してください。
可能な場合は、1 行目に Yes と出力し、2 行目に選ぶ辺の列を以下の形式で出力してください:
$$ e_1 \ e_2 \ \ldots \ e_{N-1} $$
ここで、$e_k$($1 \le e_k \le N - 1$)は $k$ 回目の操作で選ばれる辺の番号を表します。条件を満たす列が複数存在する場合は、そのうちのどれを出力しても構いません。
入出力例
入力 1
3 5 1 2 2 3 2 4 2 5 1 1 1 0 0 2 1 2 0 0 9 1 2 2 3 2 4 4 5 4 6 6 7 6 8 6 9 0 0 1 0 1 1 0 1 1
出力 1
Yes 3 2 4 1 No Yes 6 7 4 2 1 3 5 8