Гуанчжоу, также известный как Кантон и «Город Баранов», — это динамичный мегаполис с более чем 2200-летней историей. Будучи важным отправным пунктом древнего Морского шёлкового пути, он был крупным портом для международной торговли ещё со времён династий Цинь и Хань.
В прошлом году в Гуанчжоу успешно завершились 15-е Национальные игры. Дух упорного труда спортсменов до сих пор процветает в этом городе.
Изображение 1 : «Даваньцзи» в международном аэропорту Гуанчжоу Байюнь
Теперь вы и ваш спутник планируете поездку по Гуанчжоу. Есть $n$ достопримечательностей, которые вы хотите посетить. Кроме того, вы планируете остаться в Гуанчжоу на $m$ дней.
Существует $n-1$ связей между достопримечательностями. Каждая связь соединяет две достопримечательности, указывая на то, что они тесно связаны историей или пейзажем. Кроме того, любые две различные достопримечательности могут быть достигнуты друг из друга через одну или несколько связей, то есть связи образуют дерево.
Вы решаете посетить каждую достопримечательность ровно один раз. Пусть $b_i$ — день, в который посещается достопримечательность $i$. Ваш план должен удовлетворять:
- Отель, который вы забронировали на $i$-й день, находится рядом с достопримечательностью $a_i$. Это означает, что вы должны посетить достопримечательность $a_i$ в день $i$. Другими словами, $b_{a_i} = i$ для всех $i = 1, 2, \dots, m$.
- Для каждой достопримечательности $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$, $a_i \ne a_j$ при $i < j$), которые указывают, что вы должны посетить достопримечательность $a_i$ в день $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