Lock

Time limit: 0.2s Memory limit: 128MB Input: Output:

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 NN numere naturale, indexate de la 11 la NN. Introducerea acestui cod și deblocarea dispozitivului se face într-un mod special. Încuietoarea începe cu o secvență afișată compusă din NN valori de zero. Nelu poate folosi apoi o operație numită incS(i,j)incS(i, j), care incrementeaza cu 11 toate valorile cu indici între ii și jj (inclusiv). De exemplu, folosind o operație incS(2,4)incS(2, 4) pe secvență [0, 0, 0, 0], vom produce secvența [0, 1, 1, 1]. În mod similar, folosind un incS(2,3)incS(2, 3) 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 11 la NN, adică o secvență de NN numere care să conțină fiecare număr de la 11 la NN 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 incSincS necesare pentru deblocarea dispozitivului să fie exact egal cu numărul său preferat MM. 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 NN și MM, cu semnificațiile respective de mai sus.

Date de ieșire

Afișați o secvență de NN 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

  • 1N1 000 0001 \leq N \leq 1 \ 000 \ 000;
  • 1M1 000 000 000 0001 \leq M \leq 1 \ 000 \ 000 \ 000 \ 000;
  • O permutare A1,A2,...,ANA_1, A_2, ... , A_N este mai mica lexicografic decat o alta permutare B1,B2,...,BNB_1, B_2, ... , B_N daca exista o pozitie PP pentru care A1=B1A_1 = B_1, A2=B2A_2 = B_2 , ... , AP1=BP1A_{P−1} = B_{P−1} si AP<BPA_P < B_P.
# Punctaj Restricții
1 3 1N6,M=N1 \leq N \leq 6, M = N
2 3 1N6,M=N+11 \leq N \leq 6, M = N + 1
3 11 1N91 \leq N \leq 9
4 19 1N161 \leq N \leq 16
5 43 1N1 0001 \leq N \leq 1 \ 000
6 21 Fara alte restricții.

Exemplul 1

stdin

3 3

stdout

1 2 3

Explicație

Permutările pentru N=3N = 3 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 incSincS necesare pentru aceste permutări sunt, în ordine: 3, 3, 4, 3, 4, 3. De exemplu, pentru permutarea [2, 1, 3], Nelu poate folosi incS(3,3)incS(3, 3), incS(1,3)incS(1, 3), incS(1,1)incS(1, 1) și incS(3,3)incS(3, 3). Totuși, Nelu nu poate obține [2, 1, 3] cu mai puțin de 4 operații incSincS.

Pentru M=3M = 3, permutarea lexicografică minimă, pentru care numărul minim de incSincS necesar pentru deblocarea dispozitivului este exact egal cu MM este [1, 2, 3].

Exemplul 2

stdin

3 4

stdout

2 1 3

Explicație

Pentru M=4M = 4, codul secret este [2, 1, 3].

Exemplul 3

stdin

3 5

stdout

IMPOSSIBLE

Explicație

Pentru M=5M = 5, nu există o astfel de permutare.

Log in or sign up to be able to send submissions!