В Байтеотии есть $n$ городов, пронумерованных от $1$ до $n$, и $n-1$ дорога, каждая из которых напрямую соединяет два города. Из любого города можно добраться до любого другого города ровно одним способом, не проходя по одним и тем же дорогам дважды.
Вы отвечаете за контрразведку Байтеотии. Вы только что получили информацию о том, что шпионы из враждебной Битотии проникли в некоторые города! Вы знаете, что битотийские шпионы всегда действуют парами. Когда один шпион из пары обнаруживает полезную информацию, он пытается добраться до города, в котором находится второй шпион, чтобы поделиться своими находками. Для каждой из $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% баллов за этот тест. Вам не обязательно выводить вторую строку, чтобы получить эти баллы.