광저우는 캔톤(Canton)과 '양의 도시'로도 알려진, 2200년 이상의 역사를 지닌 활기찬 대도시입니다. 고대 해상 실크로드의 중요한 출발점으로서 진(秦)나라와 한(漢)나라 시대부터 국제 무역의 주요 항구 역할을 해왔습니다. 작년에는 제15회 전국체전이 광저우에서 성공적으로 마무리되었습니다. 선수들의 근면 정신은 이 도시에서 여전히 번성하고 있습니다.
그림 1 : 광저우 바이윈 국제공항의 "다완지(Dawanji)"
이제 당신과 당신의 팀원은 광저우 여행을 계획하고 있습니다. 방문하고 싶은 명소는 총 $n$곳입니다. 또한 광저우에 $m$일 동안 머물 예정입니다. 명소들 사이에는 $n-1$개의 관계가 있습니다. 각 관계는 두 명소를 연결하며, 두 명소가 역사적으로나 경관적으로 밀접하게 연관되어 있음을 나타냅니다. 또한 서로 다른 두 명소는 하나 이상의 관계를 통해 서로 도달할 수 있습니다. 즉, 관계들은 트리를 형성합니다. 여러분은 각 명소를 정확히 한 번씩 방문하기로 결정했습니다. $b_i$를 명소 $i$를 방문하는 날이라고 합시다. 여러분의 계획은 다음 조건을 만족해야 합니다:
- $i$번째 날에 예약한 호텔은 명소 $a_i$와 가깝습니다. 즉, $i$번째 날에는 명소 $a_i$를 방문해야 합니다. 다시 말해, 모든 $i = 1, 2, \dots, m$에 대해 $b_{a_i} = i$입니다.
- 각 명소 $i$ ($1 \le i \le n$)에 대해, 같은 날(즉 $b_i$일)에 방문하는 다른 명소와 연결된 관계의 개수는 다른 어떤 날의 그러한 관계 개수보다 작지 않습니다. 즉, 모든 $u = 1, 2, \dots, n$과 모든 $t = 1, 2, \dots, m$에 대해 $\sum_{(u,v) \in E} [b_v = b_u] \ge \sum_{(u,v) \in E} [b_v = t]$가 성립해야 합니다. 여기서 $E$는 모든 관계의 집합입니다.
그러니 이제 계획을 세우세요! 위 조건을 만족하는 $b_1, b_2, \dots, b_n$ 중 아무 것이나 구성하거나, 불가능함을 보이세요.
입력
각 테스트 케이스는 여러 개의 테스트 케이스를 포함합니다. 첫 번째 줄에는 정수 $t$ ($1 \le t \le 10^5$)가 주어지며, 테스트 케이스의 개수를 나타냅니다. 다음으로 테스트 케이스들의 설명이 이어집니다. 첫 번째 줄에는 두 정수 $n, m$ ($1 \le m \le n \le 10^5$, $1 < \sum n, \sum m \le 10^6$)이 주어지며, 명소의 개수와 머무를 일수를 나타냅니다. 두 번째 줄에는 $m$개의 정수 $a_1, a_2, \dots, a_m$ ($1 \le a_i \le n$, $i < j$일 때 $a_i \ne a_j$)이 주어지며, $i$번째 날에 명소 $a_i$를 방문해야 함을 나타냅니다. 다음 $n-1$개의 줄에는 각각 두 정수 $u_i, v_i$ ($1 \le u_i, v_i \le n$)가 주어지며, 하나의 관계를 나타냅니다.
출력
각 테스트 케이스에 대해, 유효한 계획을 만들 수 없다면 NO를 출력합니다. 그렇지 않으면 두 줄을 출력합니다. 첫 번째 줄에는 단어 YES를, 두 번째 줄에는 계획을 나타내는 $b_1, b_2, \dots, b_n$ ($1 \le b_i \le m$)을 출력합니다. 유효한 답이 여러 개인 경우, 그중 아무거나 출력할 수 있습니다.
예제
예제 입력 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
예제 출력 1
YES 1 YES 1 1 2 2 NO YES 1 2 2 3 3 1
참고
그림 2 : 테스트 케이스 4에 대한 예제 그림