学生について言えることが2つあります。彼らは必要以上の仕事をすることを嫌い、他人と距離を置くことを好むということです。前者は、おそらくこの学部が木構造を形成している理由でしょう(間接的にしかつながっていない2つの部屋の間に廊下を作るのは時間の無駄だからです)。後者は、現在進行中のパンデミックにおいて彼らがうまくやっている理由です。今やソーシャルディスタンスは贅沢ではなく、規範となっています!
しかし、木構造の建物と他人との距離を保つことは、必ずしも両立するわけではありません。現在、いくつかの部屋に $k$ 人の学生がおり、距離を保つ方針により、1つの部屋には最大で1人の学生しかいません。さらに、廊下で直接つながっている2つの部屋に学生が同時にいることはありません。
ICPCの競技がまもなく始まろうとしており、学生たちは学内に散らばっているコンピュータの席を確保しようと急いでいます。コンピュータは $k$ 台あり(学生の数と同じです)、いくつかの部屋に配置されています。さらに、距離を保つことを可能にするため、同じ部屋に2台のコンピュータが配置されることはなく、廊下で直接つながっている2つの部屋の両方にコンピュータが配置されることもありません。学生は自分たちで自由にコンピュータを割り当てることができますが、常にソーシャルディスタンスを維持しなければなりません。そのため、彼らを目的地まで移動させることは、不可能ではないにしても、難しい場合があります。
あなたは冷酷なICPCの主催者であり、究極の難問セットの作成者です。学生たちが必死に走り回るのを見て、あなたは恐ろしい事実に気づきます。もし学生たちが時間内に自分の部屋にたどり着けなければ、彼らは競技に参加できず、解けない問題を準備した苦労がすべて水の泡になってしまいます! あなたがそれを許すはずがありません。
学生の現在の位置とコンピュータの位置が与えられたとき、すべての学生をコンピュータのある部屋に移動させる一連の操作を設計してください。各操作では、学生を隣接する部屋に移動させる必要があります。操作のたびに、どの2人の学生も同じ部屋にいたり、隣接する部屋にいたりしてはいけません。競技開始までの残り時間により、最大で $4n^2$ 回の移動が可能です。ここで $n$ は部屋の数です。あなたのタスクは不可能かもしれませんが、それを知る方法はただ1つです...
入力
入力の最初の行には、テストケースの数 $z$ ($1 \le z \le 100\,000$) が含まれます。続いて各テストケースの説明が続きます。
各テストケースの最初の行には、単一の整数 $n$ ($2 \le n \le 2\,000$) が含まれます。これは学部の部屋の数です。
続く $n-1$ 行には、2つの整数 $u_i, v_i$ ($1 \le u_i \neq v_i \le n$) が含まれます。これらは廊下でつながれた2つの部屋を表します。記述された廊下が木(サイクルを含まない連結グラフ)を形成することが保証されています。
次の行には、単一の整数 $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$ が含まれます。
コンピュータのない部屋にいる学生が少なくとも1人存在することが保証されています。
すべてのテストケースにおける $n^2$ の総和は $4 \cdot 10^7$ を超えません。
出力
各テストケースについて、ソーシャルディスタンスを維持しながら学生をコンピュータのある部屋に移動させることが可能であれば "YES"(引用符なし)と出力し、そうでなければ "NO" と出力してください。可能な場合、続く行に有効な解を出力してください。
解の説明は、移動回数を表す単一の整数 $m$ ($1 \le m \le 4 \cdot n^2$) で始める必要があります。続いて $m$ 行を出力し、各行で1回の移動を2つの整数 $a_i, b_i$ ($1 \le a_i \neq b_i \le n$) で記述してください。これは、現在部屋 $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