你被给予一个数字 $n$,其二进制表示包含无限多个前导零。你可以在它的位上移动并进行一些操作。
更具体地说,你可以执行以下移动:
- “s”:召唤一个影子。你的影子将出现在你当前位置的左侧一位。
- “l”:向左移动一位。如果你的影子存在,它也会执行相同的操作。
- “r”:向右移动一位。如果你的影子存在,它也会执行相同的操作。
- “L”:如果你所在的位是 1,则向左移动一位,否则不移动。如果你的影子存在且它所在的位是 1,它也会向左移动一位。请注意,你和你的影子是独立行动的。如果你所在的位是 1,你就会移动;如果它所在的位是 1,它就会移动。
- “R”:与上一个选项相同,但你和你的影子向右移动而不是向左。
- “x”:与你的影子交换位置。如果影子不存在,则什么也不发生。
- “f”:翻转某些位(翻转意味着将 0 变为 1,反之亦然)。你翻转两个位:你所在的位和你左侧的位。如果你的影子存在,它的力量不如你,它只会翻转它所在的位。请注意,在此移动过程中,某些位可能会被翻转两次,从而保持不变。
初始时,你位于最右侧(最低有效位)的位上,且满足 $0 \le n < 2^{10}$。你需要编写一个程序(即一系列移动指令),满足以下条件:
- 你和你的影子都不能尝试从最低有效位向右移动(换句话说,不要试图离开数字的范围)。
- 你的程序包含的指令不超过 $500\,000$ 条。
- 最终的数字为 $n^2$。
一些技术细节:
- 如果某次移动后,你和你的影子处于相同的位置,那么你的影子会消失。
- 如果你在已经拥有影子的情况下再次召唤影子,那么之前的影子会消失。
- 你最终的位置可以是任意的。
- 你的影子在结束时可以存在,其位置也可以是任意的。
- 在执行过程中,位所表示的数字可以任意大。唯一的约束是最终结果必须等于 $n^2$。
- 同样,如果你和你的影子同时翻转同一个位,该位不会发生变化。
输入格式
你不需要读取任何输入。
输出格式
你应该打印一个由字符集 “slrLRxf” 中的字母组成的字符串,长度不超过 $500\,000$,代表你的程序。
样例
样例 1
lRLsfLLrfxsrLxfsrfRlfl
说明
样例输出是不正确的。事实上,这是一个程序,它从最右侧两位为 $x$ 和 $y$、其余位均为零的状态开始,最终达到所有位均为零且第三位(从 1 开始索引)为 $x$ 和 $y$ 的与非(Sheffer stroke,即 $\neg(x \land y)$)的状态。
下面是它在 $x = y = 1$ 时如何工作的示例: