关于学生,有两点不得不提:他们讨厌做多余的工作,并且喜欢与他人保持距离。前者大概就是为什么系里将建筑设计成树状结构的原因(在两个间接相连的房间之间建造走廊纯属浪费时间);后者则是为什么他们在当前的疫情下反而如鱼得水。现在,社交距离不再是一种奢侈,而是常态!
然而,树状结构的建筑与保持社交距离并不完全兼容。目前,部分房间里有 $k$ 名学生,由于社交距离政策,每个房间最多只能有一名学生。此外,没有两名学生居住在由走廊直接相连的房间里。
ICPC 竞赛即将开始,学生们争先恐后地前往散布在系里的计算机前就座。这里有 $k$ 台计算机——数量与学生人数相同——位于某些房间中;此外,为了实现社交距离,没有两台计算机位于同一个房间,也没有两台计算机位于由走廊直接相连的房间中。学生们可以随意分配计算机,但他们必须始终保持社交距离——因此,将他们引导到应该去的地方可能会很棘手,甚至是不可能的。
你是一名冷酷的 ICPC 组织者,也是终极杀手级题目的出题人。看着学生们惊慌失措地跑来跑去,你意识到一个可怕的事实:如果学生们不能及时到达他们的房间,他们将无法参加比赛,那么为准备这些无法解决的题目所付出的所有努力都将付诸东流!你绝对不能允许这种情况发生。
给定学生当前的位置和计算机的位置,设计一个操作序列,将每名学生移动到有计算机的房间。每一次操作都应将一名学生移动到相邻的房间;在每次操作后,任何两名学生都不应处于同一个房间或两个相邻的房间。比赛开始前剩余的时间允许你执行最多 $4n^2$ 次移动,其中 $n$ 是房间的数量。你的任务可能是不可能的,但只有一种方法可以验证……
输入格式
第一行包含测试用例的数量 $z$ ($1 \le z \le 100\,000$)。接下来是各测试用例的描述。
每个测试用例的第一行包含一个整数 $n$ ($2 \le n \le 2\,000$),表示系里的房间数量。
接下来的 $n-1$ 行,每行包含两个整数 $u_i, v_i$ ($1 \le u_i \neq v_i \le n$),表示由走廊连接的两个房间。保证所描述的走廊构成一棵树(无环连通图)。
下一行包含一个整数 $k$ ($1 \le k < n$),表示学生(和计算机)的数量。
下一行包含整数 $s_1, \dots, s_k$ ($1 \le s_1 < s_2 < \dots < s_k \le n$),表示学生的初始位置。
下一行以类似的格式包含整数 $c_1, \dots, c_k$,表示有计算机的房间。
保证至少有一名学生位于没有计算机的房间中。
所有测试用例的 $n^2$ 之和不超过 $4 \cdot 10^7$。
输出格式
对于每个测试用例,如果可以将学生移动到有计算机的房间同时保持社交距离,则输出 “YES”(不含引号),否则输出 “NO”。如果是前者,请在接下来的行中打印任何有效的解决方案。
解决方案描述应以一个整数 $m$ ($1 \le m \le 4 \cdot n^2$) 开头,表示移动次数。然后是 $m$ 行,每行描述一次移动,包含两个整数 $a_i, b_i$ ($1 \le a_i \neq b_i \le n$),表示当前位于房间 $a_i$ 的学生移动到与 $a_i$ 通过走廊相连的房间 $b_i$。
你不需要最小化解决方案的长度。
样例
样例输入 1
2 5 1 2 1 3 2 4 2 5 2 1 4 1 5 7 1 2 2 3 2 4 4 6 6 5 6 7 3 1 4 5 3 4 7
样例输出 1
YES 4 1 3 4 2 2 5 3 1 NO