Düzelt Kendini#10403

Düzelt Kendini

1 saniye
128 megabayt
Çok zor

FJ'nin satır halinde dizilmiş ineği var (farklı ID'lere sahip 1, \ldots, n). FJ, ineklerinin ID'lerine göre artan sırada sıralanmış olmasından hoşlanır, ancak ne yazık ki şu anda sırasız durumdalar. Geçmişte FJ, ineklerini sıralamak için "kabarcık sıralaması" gibi çığır açan algoritmalar kullanmış olsa da, bugün oldukça tembel hissediyor. Bunun yerine, belirli ineklere tek tek "düzelt kendini" diye bağıracak. Kendisine bağırıldığında, bir inek (kendi bakış açısından) sırasız olmadığından emin olur. Sağındaki inek daha küçük bir ID'ye sahip olduğu sürece, yer değiştirirler. Ardından, solundaki inek daha büyük bir ID'ye sahip olduğu sürece, yer değiştirirler. Bundan sonra, inek "düzelt kendini" işlemini tamamlamış olur: solundaki inek daha küçük bir ID'ye, sağındaki inek ise daha büyük bir ID'ye sahiptir.

FJ, ineklerden bir alt küme seçmek ve ardından bu alt kümedeki her ineğe sırayla (artan ID sırasına göre) bağırarak, ineğin tamamı sıralanana kadar bunu tekrar tekrar yapmak istiyor. Örneğin, eğer \{2, 4, 5\} ID'lerine sahip inek alt kümesini seçerse, önce inek 'ye, sonra inek 'e, sonra da inek 'e bağıracaktır. Eğer inek hâlâ sıralanmamışsa, aynı ineklere gerektiği kadar tekrar tekrar bağıracaktır.

FJ hangi ineklerin dikkat ettiğinden emin olmadığı için, bu alt kümenin boyutunu en aza indirmek istiyor. Ayrıca, FJ sayısını çok şanslı buluyor. Bu alt kümesine tekrar tekrar bağırmanın sonunda tüm ineklerin sıralanmasıyla sonuçlanacağı, minimum boyuttaki alt kümeler arasında sözlüksel olarak -inci en küçük alt kümeyi bulmasına yardım edin.

\{1, \ldots, n\} kümesinin bir alt kümesi, elemanlarının (artan sırada) listesi alt kümesinin elemanlarının (artan sırada) listesinden sözlüksel olarak daha küçükse, alt kümesi alt kümesinden sözlüksel olarak daha küçüktür. Örneğin, \{1, 3, 6\} kümesi \{1, 4, 5\} kümesinden sözlüksel olarak daha küçüktür.

Giriş

İlk satır bir n~(1 \le n \le 10^5) tamsayısı içerir. İkinci satır bir k~(1 \le k \le 10^{18}) tamsayısı içerir. Üçüncü satır, ineklerin soldan sağa ID'lerini temsil eden tane tamsayı içerir.

Minimum boyutta en az tane geçerli alt küme olduğu garanti edilir.

Çıktı

İlk satırda, minimum alt kümenin boyutunu yazdırın. Ardından, minimum boyuttaki -inci sözlüksel olarak en küçük alt kümedeki ineklerin ID'lerini artan sırada, her satıra bir ID gelecek şekilde yazdırın.

Örnekler

Örnek 1

Loading
Loading

Not

Başlangıçta, dizi şeklindedir. FJ, ID'si olan ineğe bağırdıktan sonra, dizi olur. FJ, ID'si olan ineğe bağırdıktan sonra, dizi olur ve bu noktada sıralanmış durumdadır.