Вам дано дерево состоящее из $$$n$$$ вершин. В каждой вершине записан некоторый символ $$$c_i$$$. Вам необходимо удалить некоторое количество вершин так, чтобы оставшееся множество вершин было связным и при этом нельзя было найти палиндромного пути длиной более $$$k$$$. Простой путь называется палиндромным, если при выписывании символов, записанных в вершинах в прямом и обратном порядке, получается одна и та же строка.
В первой строке задано два целых числа $$$n$$$ и $$$k$$$ — количество вершин в дереве и максимальная длина палиндромного пути.
Во второй строке задана строка $$$s$$$ состоящая только из строчных букв латинского алфавита длины $$$n$$$, где $$$i$$$-й символ $$$c_i$$$ соответсвует символу записанному в $$$i$$$-й вершине.
В следующих $$$(n - 1)$$$ строках записано по два целых числа $$$x_i$$$ и $$$y_i$$$ ($$$x_i \ne y_i$$$, $$$1 \le x_i, y_i \le n$$$) — номера вершин соединенных ребром.
$$$$$$ 1 \le k \le n \le 2\,000 $$$$$$
В первой строке выведите число $$$m$$$ — количество оставшихся после удаления вершин.
Во второй строке выведите $$$m$$$ целых чисел $$$b_i$$$ — номера оставшихся вершин.
Если существует несколько вариантов ответа, то необходимо вывести минимальный ответ, который не является префиксом другого ответа.
Ответ $$$a$$$ меньше $$$b$$$ тогда и только тогда, когда найдется такое $$$p$$$, что $$$a_p \lt b_p$$$ и $$$a_j = b_j$$$ для $$$1 \le j \lt p$$$.
Ответ $$$a$$$ является префиксом $$$b$$$ тогда и только тогда, когда $$$|a| \lt |b|$$$ и $$$a_j = b_j$$$ для $$$1 \le j \le |a|$$$, где $$$|a|$$$ – длина массива $$$a$$$.
3 2 aba 1 2 1 3
3 1 2 3
3 2 aba 1 2 2 3
2 1 2
Во втором примере подходят несколько ответов: $$$(1, 2)$$$, $$$(2, 1)$$$, $$$(2, 3)$$$, $$$(3, 2)$$$, $$$(1)$$$, $$$(2)$$$, $$$(3)$$$. Ответы $$$(1)$$$, $$$(2)$$$, $$$(3)$$$ являются префиксами ответов $$$(1, 2)$$$, $$$(2, 1)$$$ и $$$(3, 2)$$$ соответсвенно. Среди оставшихся подходящих ответов минимальным является $$$(1, 2)$$$.