ALU(反萝莉控联盟)的特工在首相 Rowdark 的领导下,发现了一名极其危险的萝莉控,他经常参加名为 TankEngineer 的 ICPC 比赛。他对萝莉的错误信仰会腐蚀 ALU 的公民,必须被清除!
为了防止这个潜在的罪犯逃跑,特工们关闭了 ALU 的大部分道路,现在只有 $n-1$ 条双向道路连接着 $n$ 个城市,但人们仍然可以通过这些道路前往任何其他城市。此外,只有首都(编号为 1)可以有超过两条开放的道路与它相连。
尽管对 TankEngineer 的悬赏金额巨大,但精英特工们几个月来都没能抓住他。有传言称 TankEngineer 伪装成了特工之一,这样就没人能认出他了!首相 Rowdark 非常生气,决定最后一次清除这个威胁。
他召集了 $n$ 名最信任的特工并制定了一个计划。Rowdark 知道第 $i$ 名特工只能被派往城市 $u_i$ 和 $v_i$ 之间的唯一简单路径上的某个城市,因为这些是他熟悉的城市。成功的关键在于:每个城市必须恰好派遣一名特工,这样如果发现了另一名特工,那一定就是伪装的 TankEngineer,并将立即被清除。
在给定所有 $n$ 名特工可以被派遣的限制条件下,是否有可能制定出这样一个成功的计划?请在 5 小时内给出正确答案,否则你将被认定为一名参加 ICPC 比赛的极其危险的萝莉控,并将你的 ID 印在下一套题目集上。
输入格式
第一行包含一个整数 $n$ ($2 \le n \le 10^4$),既是城市数量也是特工数量。
接下来的 $n-1$ 行描述了 ALU 中的开放道路。每行包含两个整数 $a_i, b_i$ ($1 \le a_i, b_i \le n$),表示城市 $a_i$ 和 $b_i$ 之间的一条道路。首都编号为 1。
随后的 $n$ 行描述了特工的限制条件。其中第 $i$ 行包含两个整数 $u_i, v_i$ ($1 \le u_i, v_i \le n$),表示第 $i$ 名特工只能被派往城市 $u_i$ 和 $v_i$ 之间的路径(包含两端)上的某个城市。
输出格式
如果这样的计划是不可能的,请输出一行 "No"(不含引号)。
否则,第一行输出 "Yes"(不含引号),第二行输出 $n$ 个整数。第 $i$ 个整数表示第 $i$ 名特工应该被派往的城市编号。
如果存在多个可能的计划,输出其中任意一个即可。
样例
输入 1
10 2 1 3 1 6 1 8 2 4 3 9 6 5 4 7 8 10 7 8 7 10 2 7 2 10 1 3 1 5 2 5 1 6 1 9 2 3 4
输出 1
Yes 7 10 8 2 3 1 5 6 9 4
输入 2
5 1 2 1 3 1 4 3 5 5 4 5 3 3 1 1 4 1 1
输出 2
No