FJ ha mucche (con ID distinti 1, \ldots, n) allineate in fila. A FJ piace che le sue mucche siano ordinate in ordine crescente di ID, ma sfortunatamente al momento sono disordinate. Sebbene in passato FJ abbia usato algoritmi rivoluzionari come il "bubble sort" per ordinare le sue mucche, oggi si sente piuttosto pigro. Invece, urlerà a mucche specifiche, una alla volta, di "mettersi in ordine". Quando viene chiamata, una mucca si assicura di non essere fuori posto (dal suo punto di vista). Finché la mucca immediatamente alla sua destra ha un ID più piccolo, si scambiano di posto. Poi, finché la mucca immediatamente alla sua sinistra ha un ID più grande, si scambiano di posto. Dopo di che, la mucca ha finito di "mettersi in ordine": la mucca alla sua sinistra ha un ID più piccolo, e la mucca alla sua destra ha un ID più grande.
FJ vuole scegliere un sottoinsieme di mucche e poi percorrerlo, chiamando ciascuna mucca a turno (in ordine crescente di ID), più e più volte finché tutte le mucche non sono ordinate. Per esempio, se sceglie il sottoinsieme di mucche con ID \{2, 4, 5\}, chiamerà la mucca , poi la mucca , e poi la mucca . Se le mucche non sono ancora ordinate, chiamerà di nuovo le stesse mucche, più e più volte, quante volte sia necessario.
Poiché FJ non è sicuro di quali mucche stiano prestando attenzione, vuole minimizzare la dimensione di questo sottoinsieme. Inoltre, FJ considera il numero molto fortunato. Aiutalo a trovare il -esimo sottoinsieme più piccolo in ordine lessicografico, tra quelli di dimensione minima, tale che chiamare ripetutamente le sue mucche porti infine all'ordinamento di tutte le mucche.
Un sottoinsieme di \{1, \ldots, n\} è lessicograficamente più piccolo di un sottoinsieme se la lista degli elementi di (in ordine crescente) è lessicograficamente più piccola della lista degli elementi di (in ordine crescente). Per esempio, \{1, 3, 6\} è lessicograficamente più piccolo di \{1, 4, 5\}.
La prima riga contiene un intero n~(1 \le n \le 10^5). La seconda riga contiene un intero k~(1 \le k \le 10^{18}). La terza riga contiene interi — gli ID delle mucche da sinistra a destra.
È garantito che esistano almeno sottoinsiemi validi di dimensione minima.
Nella prima riga, stampa la dimensione del sottoinsieme minimo. Poi stampa gli ID delle mucche nel -esimo sottoinsieme più piccolo in ordine lessicografico, tra quelli di dimensione minima, uno ID per riga.
Esempio 1
Inizialmente, l'array è . Dopo che FJ chiama la mucca con ID , l'array diventa . Dopo che FJ chiama la mucca con ID , l'array diventa , e a questo punto è ordinato.