As you already know, Ralph dreams of becoming the best in some game, winning a gold medal in it and becoming a real hero! This time, Ralph decided to show everyone that he is not only strong and brave, but also very smart, that's why he went to the game "Holiday Sugar Modulus Calculations".
The goal of the game is simple: the player is given two numbers. Using a calculator, you need to find xor . The expression xor denotes the application of bitwise exclusive or (bitwise addition modulo ) to the numbers and . This operation is available in all modern programming languages, for example, in C ++ and Java it is denoted ˆ, in Pascal - xor.
The calculator stores in memory all the numbers that were received by the player during the game, and also knows how to add numbers, subtract them, multiply or integer divide a number by . The memory of the calculator is, of course, limited: it cannot store more than integers. In addition, all numbers stored in the calculator must be between and 2^{31} - 1 inclusive. Initially, the calculator's memory contains the numbers and . The player can only use the numbers stored in the calculator's memory.
Ralph is a very smart guy, but Vanellope is in trouble again, he hurries to help her. Therefore, it is up to you to become the best in the game "Holiday Sugar Modulus Calculations"!
One line contains two integers and (1 \le x, y \le 10^9) - the numbers that initially lie in calculator memory.
In the first line print the number of actions (1 \le n \le 1000) the player needs to perform to win the game.
In each of the following lines print first the type of action you want to perform on the current step:
- add two numbers
- subtract the second from the first number
- multiply number by
- integer divide the number by .
If the type of operation is or , then output two numbers - the numbers of iterations at which each of the used numbers was obtained. If the operation type is or , print a single number - the number of the iteration at which the used number was obtained.
For example, to subtract the number obtained at iteration from the number obtained at iteration , print "2 3 4".
We will assume that the numbers and from the input data were obtained at the 1st and 2nd iterations, respectively.
Note that the number xor must come from the last iteration. You are not required to find the answer with the minimum number of actions.
Example 1
Example 2