바이트오티아(Byteotia)에는 $1$부터 $n$까지 번호가 매겨진 $n$개의 도시와, 각 도시를 직접 연결하는 $n-1$개의 도로가 있습니다. 모든 도시에서 다른 모든 도시로 가는 경로는 되돌아가는 길 없이 정확히 하나씩 존재합니다.
당신은 바이트오티아 방첩대를 책임지고 있습니다. 적대적인 비토티아(Bitotia)의 스파이들이 일부 도시에 잠입했다는 정보를 방금 입수했습니다! 비토티아 스파이들은 항상 쌍으로 활동한다는 사실을 알고 있습니다. 한 쌍의 스파이 중 한 명이 유용한 정보를 발견하면, 그들은 정보를 공유하기 위해 다른 스파이가 있는 도시로 이동하려고 합니다. $q$개의 스파이 쌍 각각에 대해, 현재 각 스파이가 어느 도시에 있는지 정확히 알고 있습니다.
당신의 임무는 어떤 스파이 쌍도 만나지 못하게 하는 것입니다. 이를 위해 임의의 도시 집합에 격리를 선포할 수 있습니다. 격리된 도시로는 들어갈 수도, 통과할 수도, 나갈 수도 없습니다.
스파이 쌍은 격리되지 않은 도시들로 이루어진 경로 $x_1, x_2, \dots, x_k$가 존재할 때만 만날 수 있습니다. 여기서 $x_1$은 한 스파이가 있는 도시이고, $x_k$는 다른 스파이가 있는 도시이며, 모든 $1 \le i \le k-1$에 대해 도시 $x_i$와 $x_{i+1}$은 도로로 직접 연결되어 있어야 합니다.
당연히 국가 전체를 마비시키고 싶지는 않으므로, 가능한 한 적은 수의 도시를 격리하고자 합니다. 모든 스파이 쌍이 만나는 것을 방지하기 위해 격리해야 하는 최소 도시 수를 계산하십시오. 또한, 이를 달성하기 위한 격리 도시 목록 중 하나를 제시하십시오.
입력
입력의 첫 번째 줄에는 바이트오티아의 도시 수 $n$과 스파이 쌍의 수 $q$ ($2 \le n \le 5 \cdot 10^5$, $1 \le q \le 5 \cdot 10^5$)가 주어집니다.
다음 $n-1$개의 줄에는 도로에 대한 정보가 주어집니다. $i$번째 줄($1 \le i \le n-1$)에는 두 정수 $a_i$와 $b_i$($1 \le a_i, b_i \le n$, $a_i \neq b_i$)가 주어지며, 이는 도시 $a_i$와 $b_i$가 도로로 직접 연결되어 있음을 의미합니다.
다음 $q$개의 줄에는 스파이 쌍에 대한 정보가 주어집니다. $i$번째 줄($1 \le i \le q$)에는 두 정수 $c_i$와 $d_i$($1 \le c_i, d_i \le n$, $c_i \neq d_i$)가 주어지며, 이는 $i$번째 스파이 쌍이 위치한 도시를 나타냅니다(한 명은 $c_i$에, 다른 한 명은 $d_i$에 있습니다). 여러 스파이(서로 다른 쌍)가 같은 도시에 있을 수도 있습니다.
출력
출력의 첫 번째 줄에는 모든 스파이 쌍이 만나는 것을 방지하기 위해 격리해야 하는 최소 도시 수 $s$를 출력하십시오. 두 번째 줄에는 이를 달성하기 위해 격리해야 하는 도시 $s$개를 출력하십시오.
예제
예제 입력 1
7 3 1 2 1 3 2 4 2 5 2 6 3 7 1 5 1 6 3 7
예제 출력 1
2 2 3
참고
그림에서 $A$, $B$, $C$로 표시된 세 쌍의 스파이가 있습니다. 도시 $2$와 $3$(원으로 표시됨)을 격리하면, 어떤 스파이 쌍도 이 도시들을 거치지 않고는 만날 수 없습니다. 격리할 수 있는 다른 유효한 도시 목록으로는 예를 들어 $1$과 $3$, 또는 $1$과 $7$이 있습니다.
서브태스크
| 서브태스크 | 제한 | 점수 |
|---|---|---|
| 1 | $n, q \le 20$ | 9 |
| 2 | $q \le 2$ | 11 |
| 3 | 각 스파이 쌍을 잇는 경로는 최대 하나의 다른 경로와 교차함 | 17 |
| 4 | $a_i = i, b_i = i + 1$ ($1 \le i \le n - 1$) | 12 |
| 5 | $a_i = i + 1, b_i = \lfloor \frac{i+1}{2} \rfloor$ ($1 \le i \le n - 1$) | 23 |
| 6 | 추가 제한 없음 | 21 |
답의 첫 번째 줄만 맞춘 경우, 해당 테스트 케이스 점수의 80%를 획득합니다. 이 점수를 받기 위해 두 번째 줄을 출력할 필요는 없습니다.