Japanese computer
Japanese engineers are known for developing large combat humanoid robots for border defense. Each robot is controlled by a Japanese computer. To maximize the robot's efficiency, the computer's program must be optimized to execute as many tasks as possible in the shortest time.
Currently, Japanese programmers have been assigned a task (the purpose of which is confidential and cannot be disclosed here): initially, the computer's memory contains a single number, x. The goal is to generate the following numbers in memory: a_1x, a_2x, ..., a_nx. The computer can perform these operations:
Addition of two numbers
Subtraction of two numbers
Bitwise left shift (shifting by k bits is equivalent to multiplying by 2^k)
All intermediate values obtained are stored in memory and can be used for further calculations.
During calculations, the value must never exceed 42x. It is guaranteed that adhering to this restriction prevents any overflow in the computer. Additionally, the computer cannot handle negative numbers, so subtracting a larger number from a smaller one is not allowed.
The order in which the numbers a_1x, a_2x, ..., a_nx appear in memory does not matter.
Input
The first line contains the number n - the number of required values (1 ≤ n ≤ 41). The second line contains n numbers a_i (2 ≤ a_i ≤ 42). All a_i are distinct. The number x itself is not provided, so your sequence of operations must be valid for any x.
Output
On the first line, output a single number - the minimum number of required operations. Then, list the required operations in the following format:
Left shift ax by k bits: a«k
Addition of ax and bx: a+b
Subtraction of ax from bx: b-a
The operation notation should not contain spaces.