本题提供附件。你可以使用它来模拟并可视化机器人的移动过程。
VegiCat 在一个无限大的二维网格上有一个机器人。他希望机器人从格子 $s = (s_x, s_y)$ 移动到格子 $t = (t_x, t_y)$。每个格子的坐标都是整数。格子 $s$ 和 $t$ 可以相同。
机器人按照指令字符串 $p$ 行动。每个字符为 L、R、U 或 D。记 $|p|$ 为 $p$ 的长度。
机器人从 $s$ 出发。在它执行任何指令之前,你可以在不同的格子中放置至多 $|p|$ 个障碍物。每个障碍物的坐标 $(x, y)$ 必须满足 $-2 \cdot 10^9 \le x, y \le 2 \cdot 10^9$。$s$ 和 $t$ 中都不能放置障碍物。每个障碍物占据一个格子,并在整个过程中保持固定;其余所有格子均没有障碍物。
机器人按顺序执行指令 $p_1, p_2, \ldots, p_{|p|}$。对于每条指令,从当前所在的格子 $(x, y)$ 出发,机器人会沿着如下格子序列移动:
L: $(x, y) \to (x - 1, y) \to (x - 2, y) \to \cdots$;R: $(x, y) \to (x + 1, y) \to (x + 2, y) \to \cdots$;U: $(x, y) \to (x, y + 1) \to (x, y + 2) \to \cdots$;D: $(x, y) \to (x, y - 1) \to (x, y - 2) \to \cdots$.
只要指定方向上的下一个格子没有障碍物,机器人就会不断朝该方向前进一步。它会停在该方向上第一个障碍物正前方的格子里。如果在该指令开始前,指定方向上的下一个格子已经包含障碍物,则机器人留在原地,但该指令仍然视为执行完毕。如果该方向前方没有任何障碍物,机器人将永远移动下去,此时障碍物放置方案无效。
机器人可能在所有指令执行完毕之前就已经到达 $t$。它仍然必须执行完所有剩余的指令。请构造任意一种满足上述要求的障碍物放置方案,使得机器人在执行完最后一条指令后停在 $t$,或者报告不存在这样的放置方案。
输入格式
第一行包含一个整数 $T$($1 \le T \le 10^5$),表示测试数据组数。接下来是各组测试数据的描述。
每组测试数据的第一行包含两个整数 $s_x$ 和 $s_y$($-10^9 \le s_x, s_y \le 10^9$),表示起点格子的坐标。
第二行包含两个整数 $t_x$ 和 $t_y$($-10^9 \le t_x, t_y \le 10^9$),表示目标格子的坐标。
第三行包含指令字符串 $p$($1 \le |p| \le 10^5$),仅由字符 L、R、U 和 D 组成。
保证所有测试数据中 $|p|$ 的总和不超过 $10^5$。
输出格式
对于每组测试数据,按输入顺序输出答案。不同测试数据的障碍物放置方案相互独立。
如果不存在合法的放置方案,单独输出一行 NO。
否则,第一行输出 YES。第二行输出一个整数 $k$($0 \le k \le |p|$),表示障碍物的数量。
接下来输出 $k$ 行。其中第 $i$ 行必须包含两个整数 $x_i$ 和 $y_i$($-2 \cdot 10^9 \le x_i, y_i \le 2 \cdot 10^9$),表示在格子 $(x_i, y_i)$ 放置一个障碍物。
所有 $k$ 个坐标对必须互不相同,且都不能等于 $s$ 或 $t$。该放置方案必须使每条指令都能结束,并在最后一条指令结束后使机器人停在 $t$。如果存在多种合法方案,输出任意一种即可。
你可以以任意大小写形式输出是或否的判定结果。例如,yEs、yes、Yes 和 YES 都会被判定为肯定的回答。
样例
输入格式 1
6 0 0 1 0 RL 0 0 -1 0 URD 0 0 8 0 RLR 0 0 0 0 UDUD 0 0 2 5 RDULR 0 0 1 1 RURURU
输出格式 1
NO NO YES 2 -1 0 9 0 YES 2 0 -1 0 1 YES 5 -1 5 2 -1 2 6 3 0 3 5 YES 3 1 2 2 0 2 1