Business Semiconductor Units

아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

Business Semiconductor Units (BSU) is a large international corporation that focuses on selling fast and reliable computers to business clients. Recently, they have decided to develop a new processor model which will work even faster and more reliably than its predecessors.

The R&D department of the company is responsible for designing the instruction set and processor architecture. After the deadline, they should demonstrate the working prototype to the head of the company. Unfortunately, the whole department was playing Minecraft most of the time instead of doing their job, so the presented prototype supports only three simple instructions.

Let's take a closer look at their masterpiece. The new processor has 1616 registers named from r0 to r15, each of them can store an unsigned 1616-bit integer. There is also main memory consisting of 216+12^{16} + 1 eight-bit cells.

The program for this processor is a sequence of instructions. The instructions are executed sequentially, neither jumps nor loops are supported. The processor executes the same sequence of instructions 50005000 times. That is, the following procedure is repeated 50005000 times: go over the instructions from the start to the end and execute them.

Below you can see the list of available instructions. For clarity, let's call x mod 28x\text{ mod } 2^8 the lower part of the number xx, and x28\left\lfloor \frac{x}{2^8} \right\rfloor the upper part of the number xx. The number in the ii-th main memory cell is denoted mem_imem\_i.

  • imm r, b: load the constant number bb (0b<2160 \le b < 2^{16}) into the register named rr;
  • ld x, y: suppose that the register named yy stores the number bb. Then, the number mem_b+128+mem_bmem\_{b+1}\cdot 2^8 + mem\_b is put into the register xx;
  • st x, y: suppose that the register named xx stores the number aa, and the register yy stores the number bb. Then, the lower part of bb is put into mem_amem\_a, and the upper part of bb is put into mem_a+1mem\_{a+1}.

As you can see, the instruction set is pretty lean, and the R&D department is unsure whether the processor is capable of doing anything non-trivial or not. To make it run some useful programs, they hired you and gave you an assignment. Now, you need to write a program for the new processor that multiplies nn non-negative 1616-bit numbers modulo 2162^{16}.

입력

This problem has no input data.

출력

Output the required program in the following format.

The first line must contain an integer ss, the number of instructions in your program (1s1051 \le s \le 10^5).

Each of the following ss lines must contain a processor instruction. The format of instructions is described above. Be careful and follow the format strictly. All the register names must be valid (that means, from r0 to r15).

힌트

The output in the example does not multiply integers, so submitting this program will give you the "Wrong Answer" verdict. The program is only provided to illustrate the output format.