Ichiro 赢得了一个编程竞赛的奖品:最新款的扫地机器人。这个扫地机器人可以在房子里自动移动进行清扫。由于 Ichiro 的房子非常大,它可以被建模为一个无限的二维笛卡尔平面,其坐标轴分别称为 $X$ 和 $Y$。如果你面向 $X$ 轴的正方向,那么 $Y$ 轴的正方向就在你的左侧。
扫地机器人执行一系列动作进行清扫。每个动作由一次转向和一段移动组成。在一次动作中,机器人首先向左或向右转动 90 度,然后向它所面向的方向直线移动一段整数长度。一天结束时,机器人会向 Ichiro 报告当天的动作日志,以便告知他哪些地方清扫过,哪些地方没有。
与普通扫地机器人不同,这款机器人拥有类似人类的人工智能。因此,它非常健忘(像人类一样),它可能会忘记转向的方向,或者只记得移动距离的一个大概范围。然而,为了假装运行正常,机器人在清扫结束后必须恢复完整的动作日志。机器人最初位于点 $(0, 0)$,面向 $X$ 轴的正方向。给定清扫结束后的位置 $(X, Y)$ 以及机器人记住的不完整动作日志,请根据不完整日志恢复出一份完整的日志。恢复后的日志必须满足以下约束:
- 动作的总数必须与不完整日志中的相同。
- 如果第 $i$ 次转向在不完整日志中有记录,则恢复后的第 $i$ 次转向方向必须与之相同。
- 第 $i$ 次移动的长度必须在不完整日志中指定的长度范围内。
- 机器人完成所有动作后必须位于 $(X, Y)$。清扫结束后的朝向并不重要,你无需关心,因为机器人可以在清扫结束后自由转向,尽管它在清扫结束后不能再移动。你不需要恢复实际的路径,因为 Ichiro 只检查日志的格式和清扫结束后的位置。
输入格式
输入包含单个测试用例。第一行包含三个整数 $N$ ($1 \le N \le 50$),$X$ 和 $Y$ ($-10^9 \le X, Y \le 10^9$)。$N$ 表示不完整日志中的动作数量。$X$ 和 $Y$ 表示清扫结束后机器人的位置 $(X, Y)$。接下来的 $N$ 行,第 $i$ 行包含一个字符 $D_i$ 和两个整数 $LL_i$ 和 $LU_i$。$D_i$ 表示第 $i$ 次转向的方向:‘L’、‘R’ 和 ‘?’ 分别代表左转、右转和未记录。$LL_i$ 和 $LU_i$ 分别表示第 $i$ 次移动长度的下界和上界。你可以假设 $1 \le LL_i \le LU_i \le 55\,555\,555$。
输出格式
显示恢复后的日志。第一行显示 $N$,即日志中的动作数量。接下来的 $N$ 行中,第 $i$ 行显示第 $i$ 次转向的方向字符和第 $i$ 次移动的长度,中间用单个空格隔开。右转用字符 ‘R’ 表示,左转用字符 ‘L’ 表示。恢复后的日志必须满足题目中的约束。如果存在多个满足约束的日志,你可以输出其中任意一个。如果不存在满足约束的日志,则输出 -1。
样例
输入 1
2 -3 4 L 2 5 ? 3 5
输出 1
2 L 4 L 3
输入 2
5 3 -4 ? 1 5 ? 1 5 ? 1 5 ? 1 5 ? 1 5
输出 2
5 L 1 R 2 R 4 L 1 R 1