Dane jest drzewo o $N$ wierzchołkach ponumerowanych od $1$ do $N$. $i$-ta krawędź drzewa łączy wierzchołki $u_i$ oraz $v_i$. Początkowo, dla każdego $i$ ($1 \le i \le N$), na wierzchołku $i$ znajduje się jeden kamień, jeśli $A_i = 1$, lub nie ma kamienia, jeśli $A_i = 0$.
Możesz wielokrotnie wykonywać następującą operację:
- Wybierz niewybraną dotąd krawędź, na której dokładnie jednym końcu znajduje się kamień, i przesuń ten kamień na drugi koniec.
Rozstrzygnij, czy można wykonać tę operację dokładnie $N - 1$ razy. Jeśli jest to możliwe, wypisz kolejność, w jakiej wybierane są krawędzie.
Wejście
Wejście zawiera jeden lub więcej przypadków testowych. Pierwszy wiersz wejścia zawiera liczbę całkowitą $T$ ($1 \le T \le 10^5$), oznaczającą liczbę przypadków testowych. Następnie podane są opisy $T$ przypadków testowych, każdy w następującym formacie.
$$ \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} $$
Pierwszy wiersz zawiera liczbę całkowitą $N$ ($2 \le N \le 2 \times 10^5$) oznaczającą liczbę wierzchołków.
Dla każdego $i$ ($1 \le i \le N - 1$), $i$-ty z kolejnych $N - 1$ wierszy zawiera dwie liczby całkowite $u_i$ oraz $v_i$ ($1 \le u_i, v_i \le N$) oddzielone spacją, oznaczające, że $i$-ta krawędź łączy wierzchołki $u_i$ oraz $v_i$. Gwarantowane jest, że dany graf jest drzewem.
Ostatni wiersz zawiera $N$ liczb całkowitych $A_1, A_2, \ldots, A_N$ ($A_i \in \{0, 1\}$) oddzielonych spacjami. $A_i$ określa, czy na początku na wierzchołku $i$ znajduje się kamień.
Suma wartości $N$ po wszystkich przypadkach testowych nie przekracza $2 \times 10^5$.
Wyjście
Dla każdego przypadku testowego wypisz odpowiedź w następujący sposób.
Jeśli wykonanie operacji dokładnie $N - 1$ razy jest niemożliwe, wypisz No w pojedynczym wierszu.
Jeśli jest to możliwe, wypisz Yes w pierwszym wierszu, a w drugim wierszu wypisz ciąg krawędzi w następującym formacie:
$$ e_1 \ e_2 \ \ldots \ e_{N-1} $$
Tutaj $e_k$ ($1 \le e_k \le N - 1$) oznacza indeks krawędzi wybranej w $k$-tej operacji. Jeśli istnieje wiele poprawnych ciągów, możesz wypisać dowolny z nich.
Przykład
Wejście 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
Wyjście 1
Yes 3 2 4 1 No Yes 6 7 4 2 1 3 5 8