在拜特兰(Byteland),有两家领先的显卡制造商:Bitotronics 和 3D-Bytes。他们的顶级显卡非常相似。每张显卡都由许多节点组成,这些节点通过传输处理信号的导线连接。产品包含两种节点:插槽(sockets)和处理器(processors)。导线网络满足以下条件:
- 每个插槽恰好连接到一个处理器,且不连接到其他插槽。
- 每个处理器至少连接到其他两个节点。
- 网络中任意两个节点之间恰好有一条导线路径。换句话说,节点之间的连接图是一棵树。
Bitthew 热衷于捣鼓计算机硬件。他购买了两张显卡,分别来自这两家制造商。由于这两张卡的插槽数量恰好相同,他决定用电缆将 Bitotronics 卡的每个插槽连接到 3D-Bytes 卡的一个不同插槽上。他得到的设备看起来像这样:
Bitthew 想要榨取该设备的最大处理能力。为此,他希望找到一条穿过导线和电缆的路径,使处理后的信号能够通过。该路径应恰好访问两张卡上的每个节点一次,并且起点和终点必须是同一张卡上的同一个节点。请帮助 Bitthew 判断这是否可行。
输入格式
输入的第一行包含测试用例的数量 $T$。接下来是各测试用例的描述:
每个测试用例以三个整数 $k, n, m$ ($2 \leqslant k \leqslant 1\,000, 1 \leqslant n, m \leqslant 1\,000$) 开头,分别表示每张卡上的插槽数量、Bitotronics 卡上的处理器数量以及 3D-Bytes 卡上的处理器数量。卡上的节点命名如下:
- Bitotronics 卡上的插槽:AS1, AS2, . . . , ASk
- Bitotronics 卡上的处理器:AP1, AP2, . . . , APn
- 3D-Bytes 卡上的插槽:BS1, BS2, . . . , BSk
- 3D-Bytes 卡上的处理器:BP1, BP2, . . . , BPm
接下来的 $n + k - 1$ 行包含 Bitotronics 卡上的导线网络描述。其中每一行包含该卡上两个直接由导线连接的不同节点的名称。描述后有一个空行。接下来的 $m + k - 1$ 行以相同格式描述 3D-Bytes 卡上的导线网络。描述后有另一个空行。最后 $k$ 行描述 Bitthew 添加的电缆。每一行包含两个分别位于不同卡上的插槽名称,它们通过电缆直接连接。每个插槽都会出现在这 $k$ 行中的恰好一行里。除最后一个测试用例之外,每个测试用例后都有一个空行。
输出格式
按输入顺序输出每个测试用例的答案。对于每个测试用例,输出一行包含答案。如果不存在满足所需属性的路径,输出 NO。否则,输出 YES,并紧跟路径描述:按信号通过的顺序输出 $n+m+2k$ 个不同的节点。每两个相邻节点必须通过导线或电缆连接。此外,第一个节点和最后一个节点也必须连接。
样例
输入 1
1 2 1 11 AS1 AP1 AS2 AP1 BS1 BP1 BS2 BP11 BP1 BP2 BP2 BP3 BP3 BP4 BP4 BP5 BP5 BP6 BP6 BP7 BP7 BP8 BP8 BP9 BP9 BP10 BP10 BP11 AS1 BS2 BS1 AS2
输出 1
YES BP11 BP10 BP9 BP8 BP7 BP6 BP5 BP4 BP3 BP2 BP1 BS1 AS2 AP1 AS1 BS2