CF1225G To Make 1

Description

There are $ n $ positive integers written on the blackboard. Also, a positive number $ k \geq 2 $ is chosen, and none of the numbers on the blackboard are divisible by $ k $ . In one operation, you can choose any two integers $ x $ and $ y $ , erase them and write one extra number $ f(x + y) $ , where $ f(x) $ is equal to $ x $ if $ x $ is not divisible by $ k $ , otherwise $ f(x) = f(x / k) $ . In the end, there will be a single number of the blackboard. Is it possible to make the final number equal to $ 1 $ ? If so, restore any sequence of operations to do so.

Input Format

The first line contains two integers $ n $ and $ k $ — the initial number of integers on the blackboard, and the chosen number ( $ 2 \leq n \leq 16 $ , $ 2 \leq k \leq 2000 $ ). The second line contains $ n $ positive integers $ a_1, \ldots, a_n $ initially written on the blackboard. It is guaranteed that none of the numbers $ a_i $ is divisible by $ k $ , and the sum of all $ a_i $ does not exceed $ 2000 $ .

Output Format

If it is impossible to obtain $ 1 $ as the final number, print "NO" in the only line. Otherwise, print "YES" on the first line, followed by $ n - 1 $ lines describing operations. The $ i $ -th of these lines has to contain two integers $ x_i $ and $ y_i $ to be erased and replaced with $ f(x_i + y_i) $ on the $ i $ -th operation. If there are several suitable ways, output any of them.

Explanation/Hint

In the second sample case: - $ f(8 + 7) = f(15) = f(5) = 5 $ ; - $ f(23 + 13) = f(36) = f(12) = f(4) = 4 $ ; - $ f(5 + 4) = f(9) = f(3) = f(1) = 1 $ .