CF1684G Euclid Guess

Description

Let's consider Euclid's algorithm for finding the [greatest common divisor](https://en.wikipedia.org/wiki/Greatest_common_divisor), where $ t $ is a list: ```


function Euclid(a, b):

if a < b:

swap(a, b)



if b == 0:

return a



r = reminder from dividing a by b

if r > 0:

append r to the back of t



return Euclid(b, r)

``` There is an array $ p $ of pairs of positive integers that are not greater than $ m $ . Initially, the list $ t $ is empty. Then the function is run on each pair in $ p $ . After that the list $ t $ is shuffled and given to you. You have to find an array $ p $ of any size not greater than $ 2 \cdot 10^4 $ that produces the given list $ t $ , or tell that no such array exists.

Input Format

The first line contains two integers $ n $ and $ m $ ( $ 1 \le n \le 10^3 $ , $ 1 \le m \le 10^9 $ ) — the length of the array $ t $ and the constraint for integers in pairs. The second line contains $ n $ integers $ t_1, t_2, \ldots, t_n $ ( $ 1 \le t_i \le m $ ) — the elements of the array $ t $ .

Output Format

- If the answer does not exist, output $ -1 $ . - If the answer exists, in the first line output $ k $ ( $ 1 \le k \le 2 \cdot 10^4 $ ) — the size of your array $ p $ , i. e. the number of pairs in the answer. The $ i $ -th of the next $ k $ lines should contain two integers $ a_i $ and $ b_i $ ( $ 1 \le a_i, b_i \le m $ ) — the $ i $ -th pair in $ p $ . If there are multiple valid answers you can output any of them.

Explanation/Hint

In the first sample let's consider the array $ t $ for each pair: - $ (19,\, 11) $ : $ t = [8, 3, 2, 1] $ ; - $ (15,\, 9) $ : $ t = [6, 3] $ ; - $ (3,\, 7) $ : $ t = [1] $ . So in total $ t = [8, 3, 2, 1, 6, 3, 1] $ , which is the same as the input $ t $ (up to a permutation). In the second test case it is impossible to find such array $ p $ of pairs that all integers are not greater than $ 10 $ and $ t = [7, 1] $ In the third test case for the pair $ (15,\, 8) $ array $ t $ will be $ [7, 1] $ .