M6

Time limit: 0.3s Memory limit: 64MB Input: Output:

Cerință

Metroul de pe M6 are NN scaune așezate în linie și numerotate de la 11 la NN. Pentru că utilizatorii acestei linii sunt disciplinați, aceștia vor intra câte unul pe rând în acest metrou. Atunci când un pasager intră în metrou și vrea să se așeze, întotdeauna va alege scaunul cu distanța maximă față de cel mai apropiat vecin. Dacă există mai multe astfel de scaune, se va alege cel cu indicele minim.

Spre exemplu, dacă avem un metrou cu 1010 scaune iar în metrou intră 66 pasageri, ei se vor așeza pe scaune în felul următor:

  • Primul pasager se va așeza pe scaunul 11;
  • Al doilea pasager se va așeza pe scaunul 1010;
  • Al treilea pasager se poate așeza fie pe scaunul 55, fie pe 66 (acestea sunt cele mai depărtate scaune de unele deja ocupate), dar îl va alege pe 55, deoarece are indicele mai mic;
  • Al patrulea pasager se va așeza pe scaunul 33. Atenție: acesta nu se așează pe scaunul 77, deoarece se ia distanța minimă față de vecini, iar aceasta ar fi tot 22;
  • Al cincilea pasager se va așeza pe scaunul 77;
  • Al șaselea pasager se va așeza pe scaunul 22.

Dorim să aflăm pentru MM pasageri care intră pe rând în metrou, pe ce scaun se va așeza fiecare.

Date de intrare

Pe prima linie se vor afla numerele naturale NN și MM, cu specificația din enunț.

Date de ieșire

Pe prima linie se vor afișa MM numere separate prin spațiu. Al ii-lea număr va reprezenta scaunul pe care se așează cel de-al ii-lea pasager.

Restricții și precizări

  • 1M21051 \leq M \leq 2 \cdot 10^5;
  • 1N1091 \leq N \leq 10^9;
  • Se garantează că MNM \leq N pentru toate testele;
  • Pentru 20%20\% din punctaj, M,N50M, N \leq 50;
  • Pentru 60%60\% din punctaj, M1000,N109M \leq 1000, N \leq 10^9;
  • Pentru restul testelor, nu există restricții suplimentare.

Exemplul 1

stdin

10 6

stdout

1 10 5 3 7 2

Exemplul 2

stdin

16 10

stdout

1 16 8 12 4 6 10 14 2 3

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