Permutasiyalar
Verilmiş n müxtəlif natural ədədlərdən ibarət çoxluq verilib. Bu çoxluğun elementlərinin düzülüşünə k-düzülüş deyəcəyik, əgər bu düzülüşdəki hər hansı iki qonşu elementin ən böyük ortaq böləni k-dən az olmasa. Məsələn, əgər verilmiş elementlər çoxluğu S = {6, 3, 9, 8} olarsa, {8, 6, 3, 9} düzülüşü 2-düzülüşdür, amma {6, 8, 3, 9} düzülüşü deyil.
Düzülüş {p_1, p_2, …, p_n} düzülüşü {q_1, q_2, …, q_n} düzülüşündən leksikoqrafik olaraq kiçik olacaq, əgər elə bir i (1 ≤ i ≤ n) natural ədədi varsa ki, p_j = q_j j < i üçün və p_i < q_i.
Məsələn, yuxarıda verilmiş çoxluğun bütün k-düzülüşlərini leksikoqrafik sıraya görə düzəldək. Məsələn, S çoxluğu üçün dəqiq dörd 2-düzülüş mövcuddur: {3, 9, 6, 8}, {8, 6, 3, 9}, {8, 6, 9, 3} və {9, 3, 6, 8}. Buna görə, leksikoqrafik sırada birinci 2-düzülüş {3, 9, 6, 8} çoxluğudur, dördüncüsü isə {9, 3, 6, 8} çoxluğudur.
Tələb olunur ki, bu sırada m-ci k-düzülüşü tapmağa imkan verən proqram yazılsın.
Giriş verilənləri
Birinci sətir n (1 ≤ n ≤ 16), m və k (1 ≤ m, k ≤ 10^9) üç natural ədədini ehtiva edir. İkinci sətir n müxtəlif natural ədədləri ehtiva edir ki, onlar 10^9-dan böyük deyil.
Çıxış verilənləri
Verilmiş çoxluğun m-ci k-düzülüşünü çıxarın və ya belə bir düzülüş yoxdursa, -1 çıxarın.