F. Empty Vessels
time limit per test
1 second
memory limit per test
256 mebibytes
input
standard input
output
standard output

There are n empty vessels on a river bank. The i-th vessel can contain at most ai liters of water. Almighty Ivan needs to fill some vessel with exactly A liters of water and take it home. To do so, he can perform the following operations:

  1. fill some vessel with water from the river until it is full,
  2. pour out water from some vessel to the river so it becomes empty,
  3. pour water from the i-th vessel to the j-th vessel until the i-th one is empty or the j-th one is full.

Now Almighty Ivan needs your help. You should provide him with the list of operations which leads to the situation when one of the vessels contains exactly A liters of water. If there is no way to do so, print  - 1.

Please note that you don't have to minimize the number of operations in this list, but the number of operations should not exceed 106.

Input

The first line contains integers n and A (1 ≤ n ≤ 10, 1 ≤ A ≤ 5) — the number of vessels and the required number of liters. The next line contains n integers a1, a2, ..., an (1 ≤ ai ≤ 2·104) where ai is the volume of the i-th vessel.

Output

If the answer doesn't exist, print  - 1.

Otherwise, on the first line, print one integer m: the number of operations in the list. Then print m lines: the descriptions of the operations.

The description of each operation must start by an integer specifying its type (1, 2 or 3 as they are listed in the statement). For the first and second type, it must be followed by one integer number k (1 ≤ k ≤ n) which is the index of the vessel taking part in this operation. For the third type, it must be followed by two integer numbers i and j (1 ≤ i, j ≤ n, i ≠ j) which mean that Ivan should pour water from the i-th vessel to the j-th one until one of them is full or empty.

Please check the samples for better understanding.

Examples
Input
2 1
5 2
Output
4
1 1
3 1 2
2 2
3 1 2
Input
4 3
1 2 1 1
Output
-1