Олимпиадный тренинг

Задача 38373. Keep the line - 2


Задача

Темы:
In the military unit of the city of Shatrov, drill training continues. The young warrant officer Andrey Yuryevich had already gotten used to conducting these classes, but then his boss Pavel Andreevich began to give him new, more difficult tasks.

As you know, usually all soldiers line up in order of height, starting with the shortest. But Pavel Andreevich found this too boring and he demanded that Andrei Yuryevich line up the soldiers in a different order. The random order seemed too chaotic to him, so he demanded a construction in which there would be exactly k inversions. An inversion is such a pair of soldiers that the taller of them stands in line before the lower one.

Fortunately for Andrei Yurievich, all soldiers are of different heights, and for everyone he knows what height he is among all soldiers. Based on this, Andrey Yuryevich assigned a number to each soldier: the first number was the lowest, and the last — the tallest soldier.

For example, in the construction (3, 1, 2) there are two inversions of — pairs (3, 1) and (3, 2) in which the taller soldier comes before the shorter one.

Andrey Yuryevich instructed you to help him build the soldiers in the required order, and for this you must write a program that finds the arrangement of n soldiers in an order that has exactly k inversions.

Input
The first and only line of the input file contains two integers n and k (1 ≤ n ≤ 100 000) — the number of soldiers in the ranks and the required number of inversions.

It is guaranteed that there is a formation of soldiers with the required number of inversions, i.e. 0 ≤ k ≤ n(n - 1) / 2.

Imprint
In the output file print n integers — formation of soldiers in the required order.
Examples
# Input Output
1 3 2 3 1 2
2 3 0 1 2 3