Guangzhou, también conocida como Cantón y la "Cité des Rams", es una metrópolis dinámica con más de 2 200 años de historia. Como punto de partida vital de la antigua Ruta Marítima de la Seda, ha sido un puerto importante para el comercio internacional desde las dinastías Qin y Han. El año pasado, los 15.° Juegos Nacionales concluyeron con éxito en Guangzhou. El espíritu de trabajo duro de los atletas aún prospera en esta ciudad.
Imagen 1 : "Dawanji" en el Aeropuerto Internacional de Guangzhou Baiyun
Ahora, tú y tu compañero planean un viaje por Guangzhou. Hay $n$ atracciones que deseas visitar. Además, planeas quedarte en Guangzhou durante $m$ días. Existen $n-1$ relaciones entre las atracciones. Cada relación conecta dos atracciones, indicando que están estrechamente vinculadas por historia o paisaje. Además, dos atracciones diferentes pueden alcanzarse entre sí a través de una o más relaciones, lo que significa que las relaciones forman un árbol. Decides visitar cada atracción exactamente una vez. Sea $b_i$ el día en que se visita la atracción $i$. Tu plan debe satisfacer:
- El hotel que reservaste el $i$-ésimo día está cerca de la atracción $a_i$. Esto significa que debes visitar la atracción $a_i$ el día $i$. En otras palabras, $b_{a_i} = i$ para todo $i = 1, 2, \dots, m$.
- Para cada atracción $i$ ($1 \le i \le n$), el número de relaciones que la conectan con otras atracciones visitadas el mismo día (el día $b_i$) no es menor que el número de tales relaciones para cualquier otro día. En otras palabras, para todo $u = 1, 2, \dots, n$ y todo $t = 1, 2, \dots, m$, debe cumplirse que $\sum_{(u,v) \in E} [b_v = b_u] \ge \sum_{(u,v) \in E} [b_v = t]$, donde $E$ es el conjunto de todas las relaciones.
¡Entonces, haz tu plan ahora! Construye cualquier $b_1, b_2, \dots, b_n$ posible que satisfaga las condiciones anteriores, o demuestra que es imposible.
Entrada
Cada caso de prueba contiene varios casos de prueba. La primera línea contiene un entero $t$ ($1 \le t \le 10^5$), que indica el número de casos de prueba. La descripción de los casos de prueba continúa. La primera línea de cada caso de prueba contiene dos enteros $n, m$ ($1 \le m \le n \le 10^5$, $1 < \sum n, \sum m \le 10^6$), que indican el número de atracciones y el número de días que te quedarás. La segunda línea contiene $m$ enteros $a_1, a_2, \dots, a_m$ ($1 \le a_i \le n$, $a_i \ne a_j$ para $i < j$), que indican que debes visitar la atracción $a_i$ el día $i$. Las siguientes $n-1$ líneas, cada línea contiene dos enteros $u_i, v_i$ ($1 \le u_i, v_i \le n$), que indican una relación.
Salida
Para cada caso de prueba, si no puedes hacer un plan válido, imprime NO. De lo contrario, imprime dos líneas. La primera línea contiene la palabra YES, y la segunda línea contiene $b_1, b_2, \dots, b_n$ ($1 \le b_i \le m$) indicando tu plan. Si existen varias respuestas válidas, puedes imprimir cualquiera de ellas.
Ejemplos
Entrada 1
4 1 1 1 4 2 2 3 1 2 2 3 3 4 3 2 1 3 1 2 2 3 6 3 1 2 4 1 2 2 3 1 4 4 5 1 6
Salida 1
YES 1 YES 1 1 2 2 NO YES 1 2 2 3 3 1
Nota
Imagen 2 : Figura de ejemplo para el caso de prueba 4