Cerință
Nelu tocmai și-a cumpărat un nou tip de încuietoare digitală pe care vrea să o folosească pentru vestiarul de la scoală. Codul secret al acestei încuietori este o secvență de numere naturale, indexate de la la . Introducerea acestui cod și deblocarea dispozitivului se face într-un mod special. Încuietoarea începe cu o secvență afișată compusă din valori de zero. Nelu poate folosi apoi o operație numită , care incrementeaza cu toate valorile cu indici între și (inclusiv). De exemplu, folosind o operație pe secvență [0, 0, 0, 0], vom produce secvența [0, 1, 1, 1]. În mod similar, folosind un pe secvența [4, 1, 3, 2], vom produce secvența [4, 2, 4, 2]. Încuietoarea se deblochează atunci când secvență afișată se potrivește cu codul secret.
Deoarece încuietoarea este nouă, Nelu trebuie să seteze codul secret. Fiind pasionat de permutări, ar vrea ca codul secret să fie o permutare a numerelor de la la , adică o secvență de numere care să conțină fiecare număr de la la exact o dată. În plus, vrea să facă codul dificil de ghicit pentru colegii săi. Pentru aceasta, Nelu dorește ca numărul minim de operații necesare pentru deblocarea dispozitivului să fie exact egal cu numărul său preferat . Dintre toate codurile posibile, dacă există, el îl va selecta pe cel minim lexicografic (după cum este explicat în restricții). Nelu iți cere ajutorul pentru a-și găsi codul secret.
Date de intrare
Intrarea constă dintr-o linie care conține două numere întregi separate printr-un spațiu și , cu semnificațiile respective de mai sus.
Date de ieșire
Afișați o secvență de numere, separate prin spații, reprezentând codul secret pe care Nelu ar trebui să-l seteze pentru lacăt. Dacă nu există o astfel de secvență, afișați mesajul IMPOSSIBLE.
Restricții și precizări
- ;
- ;
- O permutare este mai mica lexicografic decat o alta permutare daca exista o pozitie pentru care , , ... , si .
| # | Punctaj | Restricții |
|---|---|---|
| 1 | 3 | |
| 2 | 3 | |
| 3 | 11 | |
| 4 | 19 | |
| 5 | 43 | |
| 6 | 21 | Fara alte restricții. |
Exemplul 1
stdin
3 3
stdout
1 2 3
Explicație
Permutările pentru sunt [1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2] și [3, 2, 1]. Numărul minim de operații necesare pentru aceste permutări sunt, în ordine: 3, 3, 4, 3, 4, 3. De exemplu, pentru permutarea [2, 1, 3], Nelu poate folosi , , și . Totuși, Nelu nu poate obține [2, 1, 3] cu mai puțin de 4 operații .
Pentru , permutarea lexicografică minimă, pentru care numărul minim de necesar pentru deblocarea dispozitivului este exact egal cu este [1, 2, 3].
Exemplul 2
stdin
3 4
stdout
2 1 3
Explicație
Pentru , codul secret este [2, 1, 3].
Exemplul 3
stdin
3 5
stdout
IMPOSSIBLE
Explicație
Pentru , nu există o astfel de permutare.