Business Semiconductor Units (BSU) 是一家大型跨国公司,专注于向商业客户销售快速且可靠的计算机。最近,他们决定开发一种新的处理器模型,使其工作速度比前代产品更快、更可靠。
公司的研发部门负责设计指令集和处理器架构。在截止日期之后,他们本应向公司负责人展示工作原型。不幸的是,整个部门大部分时间都在玩《我的世界》(Minecraft)而不是完成工作,因此所展示的原型仅支持三条简单的指令。
让我们仔细看看他们的杰作。新处理器有 16 个寄存器,命名为 r0 到 r15,每个寄存器可以存储一个 16 位无符号整数。此外,还有由 $2^{16}+1$ 个 8 位单元组成的内存。
该处理器的程序是一系列指令。指令按顺序执行,不支持跳转或循环。处理器将同一指令序列执行 5000 次。也就是说,以下过程重复 5000 次:从头到尾遍历指令并执行它们。
下面是可用指令列表。为了清晰起见,我们将 $x \pmod{2^8}$ 称为数字 $x$ 的低位部分,将 $\lfloor \frac{x}{2^8} \rfloor$ 称为数字 $x$ 的高位部分。第 $i$ 个内存单元中的数字记为 $mem_i$。
imm r, b:将常量 $b$ ($0 \le b < 2^{16}$) 加载到名为 $r$ 的寄存器中;ld x, y:假设名为 $y$ 的寄存器存储数字 $b$。则将 $mem_{b+1} \cdot 2^8 + mem_b$ 放入寄存器 $x$ 中;st x, y:假设名为 $x$ 的寄存器存储数字 $a$,名为 $y$ 的寄存器存储数字 $b$。则将 $b$ 的低位部分放入 $mem_a$,将 $b$ 的高位部分放入 $mem_{a+1}$。
如你所见,指令集非常精简,研发部门不确定该处理器是否能够执行任何非平凡的操作。为了让它运行一些有用的程序,他们聘请了你并交给你一项任务。现在,你需要为新处理器编写一个程序,计算 $n$ 个非负 16 位数字的乘积模 $2^{16}$。
输入格式
本题没有输入数据。
输出格式
按以下格式输出所需的程序。
第一行必须包含一个整数 $s$,即你程序中的指令数 ($1 \le s \le 10^5$)。
接下来的 $s$ 行,每行必须包含一条处理器指令。指令格式如上所述。请务必严格遵守格式。所有寄存器名称必须有效(即从 r0 到 r15)。
交互
从技术上讲,这是一个只读交互式问题。[听起来很奇怪,不是吗?:)]
在每个测试中,交互器首先读取你输出的指令。接下来,它从测试中读取整数 $n$ 和 $n$ 个整数 $a_i$ ($1 \le n \le 4000, 0 \le a_i < 2^{16}$)。数字 $n$ 被放入寄存器 r0 中。对于每个 $1 \le i \le n$,$a_i$ 的低位部分被放入 $mem_{2 \cdot i - 2}$,高位部分被放入 $mem_{2 \cdot i - 1}$。所有其他寄存器和内存单元初始均为零。
然后,交互器执行你的程序。指令按顺序执行,程序执行恰好 5000 次。
之后,交互器从寄存器 r0 读取你的答案,并将其与 $a_1 \cdot a_2 \cdot \dots \cdot a_n \pmod{2^{16}}$ 进行比较。
样例
样例输入 1
``` #### 样例输出 1
4 imm r3, 42 imm r1, 6 st r3, r1 ld r0, r3 ```
说明
示例中的输出并不执行整数乘法,因此提交此程序将获得“Wrong Answer”判决。该程序仅用于说明输出格式。