你正试图从博物馆中窃取一颗极其珍贵的钻石王冠。诱人之处在于(由于预算削减),所有的警卫都被一台巡逻博物馆主大厅的自动无人机所取代。然而,令人望而却步的是,这台无人机配备了非常现代化的武器,如果你引起了它的注意,很可能会被粉碎。
幸运的是,你已经做好了功课,对无人机的工作原理有了相当深入的了解。想象一下,大厅是一个欧几里得平面,被划分为单位正方形网格。中心单元格 $(0, 0)$ 存放着王冠。无人机有一个简单的处理单元,存储两样东西:它当前的位置 $(x, y)$ 和指令序列,用字母 'N'、'E'、'S'、'W' 表示。每一分钟,无人机根据序列的第一个字母(北、南、西或东)移动到相邻位置,相应地改变存储的位置,然后将这个字母移到序列的末尾,以便在下一分钟访问下一个字母。如果指令序列为空,无人机则什么也不做。保证这些指令描述了一个闭合回路,且无人机从不进入 $(0, 0)$ 单元格。
现在,无人机处于位置 $(x_0, y_0)$,并拥有一个指令字符串 $T$。你可以通过一些巧妙的黑客手段修改无人机的内存——你的目标是达到一种状态,即无人机处于相同的位置 $(x_0, y_0)$,但拥有不同的字符串 $T'$。不幸的是,你的黑客策略受到了一定限制——每一分钟,你只能访问字符串的前两个字母,并执行任意数量的以下操作:
- 删除字符串的前两个字母,但仅当它们是 “NS”、“SN”、“EW” 或 “WE” 时;
- 在字符串前端添加两个字母 “NS”、“SN”、“EW” 或 “WE”;
- 交换字符串的前两个字母(可以交换任意字母组合)。
此外,无人机上还实现了一个碰撞检测系统,如果当前的指令集可能导致无人机到达 $(0, 0)$,它会检测到。在这种情况下会触发警报——这是你必须不惜一切代价避免的情况。
请找到一系列黑客操作,使无人机在内存中拥有目标序列 $T'$ 的同时,处于位置 $(x_0, y_0)$。
输入格式
输入的第一行包含一个整数 $z$ ($1 \le z \le 100$),表示测试用例的数量。接下来是各测试用例的描述。
每个测试用例的第一行包含两个整数 $x_0, y_0$ ($-1000 \le x_0, y_0 \le 1000$),表示无人机的初始位置。$x_0, y_0$ 中至少有一个不为零。
第二行包含两个数字 $n, m$ ($2 \le n, m \le 2000$),分别表示当前字符串 $T$ 和目标字符串 $T'$ 的长度。
接下来的两行各包含一个字符串,长度分别为 $n$ 和 $m$,表示 $T$ 和 $T'$,仅由字母 N, S, E, W 组成。
保证当前序列和目标序列不同。此外,两者都描述了闭合回路,且这些回路在路径上的任何时刻都不会经过 $(0, 0)$。
所有测试用例中的字母总数不超过 $20\,000$。
输出格式
对于每个测试用例,如果无法满足任务要求,请在单行中输出 “NO”。否则,输出 “YES”,并在下一行输出解决方案描述。解决方案必须仅由符号 $\{N, S, E, W, -, R, C\}$ 组成,其中每个字符表示一个单一的黑客操作:
- 符号 'N' 表示在字符串前端添加 “NS”。
- 类似地,符号 'S'、'E' 和 'W' 表示在前端添加 “SN”、“EW” 和 “WE”。
- 符号 'R' 表示删除字符串的前两个字母——仅当这些字母是 “NS”、“SN”、“EW” 或 “WE” 时才允许。
- 符号 'C' 表示交换前两个字母。
- 符号 '-' 表示你等待该分钟的剩余时间(直到无人机移动到下一条指令)。
注意,一分钟内可以进行多次黑客操作。你不需要最小化解决方案的长度,但操作描述的字符数不得超过 $2 \cdot 10^7$。在输出的最后一分钟结束时,无人机的字符串和位置必须与目标匹配。不允许对长度不超过一个字母的字符串进行删除或交换操作。在任何时刻,无人机序列所描述的回路都不能经过 $(0, 0)$。
样例
样例输入 1
2 1 0 10 10 NNWWSSSEEN NWWSSSEENN -1 0 8 8 NEESSWWN SEENNWWS
样例输出 1
YES -C-C-R--S-C-C--- NO