広州は、カントンや「ラムの都」としても知られ、2200年以上の歴史を持つダイナミックな大都市です。古代海上シルクロードの重要な出発点として、秦・漢の時代から国際貿易の主要港として栄えてきました。 昨年、第15回全国運動会が広州で成功裏に閉幕しました。アスリートたちの努力の精神は、今もこの街に息づいています。
図1 : 広州白雲国際空港の「大碗機」
さて、あなたとあなたのパートナーは広州への旅行を計画しています。訪問したい観光地が $n$ か所あります。また、広州に滞在する日数は $m$ 日です。 観光地の間には $n-1$ 個の関係があります。各関係は2つの観光地を結び、歴史や景観において密接に関連していることを示します。さらに、異なる2つの観光地は1つ以上の関係を経由して到達可能であり、関係が木を形成することを意味します。 あなたは各観光地をちょうど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$) が含まれ、テストケースの数を示す。以下にテストケースの説明が続く。 各テストケースの最初の行には2つの整数 $n, m$ ($1 \le m \le n \le 10^5$, $1 < \sum n, \sum m \le 10^6$) が含まれ、観光地の数と滞在日数を示す。 2行目には $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$ 行の各行には2つの整数 $u_i, v_i$ ($1 \le u_i, v_i \le n$) が含まれ、1つの関係を示す。
出力
各テストケースについて、有効な計画が作成できない場合は NO を出力せよ。
そうでなければ、2行を出力せよ。最初の行には単語 YES を含め、2行目には $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の例の図