Перестановки
Задано множину з n різних натуральних чисел. Перестановку елементів цієї множини назвемо k-перестановкою, якщо для довільних двох сусідніх елементів цієї перестановки їх найбільший спільний ділбник не менше k. Наприклад, якщо задано множину елементів S = {6, 3, 9, 8}, то перестановка {8, 6, 3, 9} є 2-перестановкою, а перестановка {6, 8, 3, 9} – ні.
Перестановка {p_1, p_2, …, p_n} буде лексикографічно меншою перестановки {q_1, q_2, …, q_n}, якщо існує таке натуральне число i (1 ≤ i ≤ n), для якого p_j = q_j при j < i и p_i < q_i.
Для прикладу впорядкуємо всі k-перестановки заданої вище множини у лексикографічному порядку. Наприклад, існує рівно чотири 2-перестановки множини S: {3, 9, 6, 8}, {8, 6, 3, 9}, {8, 6, 9, 3} и {9, 3, 6, 8}. Відповідно, першою 2-перестановкою у лексикографічному порядку є множина {3, 9, 6, 8}, а четвертою – множина {9, 3, 6, 8}.
Потрібно написати програму, яка дозволяє знайти m-у k-перестановку у цьому порядку.
Вхідні дані
Перший рядок містить три натуральних числа n (1 ≤ n ≤ 16), m і k (1 ≤ m, k ≤ 10^9). Другий рядок містить n різних натуральних чисел, які не перевищують 10^9.
Вихідні дані
Вивести m-ту k-перестановку заданої множини або -1, якщо такої немає.