D. Инверсионность перестановки
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Перестановка длины $$$n$$$ — это массив из $$$n$$$ целых чисел, в котором каждое число от $$$1$$$ до $$$n$$$ встречается ровно один раз. Инверсией в перестановке $$$p$$$ называется пара индексов $$$(i, j)$$$ такая, что $$$i \lt j$$$ и $$$p_i \gt p_j$$$.

Для перестановки $$$p$$$ назовем ее инверсионностью количество ее подотрезков, в которых есть хотя бы инверсия. Формально, это количество пар целых чисел $$$(l, r)$$$ ($$$1 \le l \lt r \le n$$$), для которых существует пара индексов $$$(i, j)$$$, удовлетворяющих следующим условиям: $$$l \le i \lt j \le r$$$ и $$$p_i \gt p_j$$$.

Например, для перестановки $$$[3, 1, 4, 2]$$$ инверсионность равна $$$5$$$.

Даны два целых числа $$$n$$$ и $$$k$$$. Ваша задача — построить перестановку длины $$$n$$$ с инверсионностью ровно $$$k$$$.

Входные данные

В первой строке задано одно целое число $$$t$$$ ($$$1 \le t \le 500$$$) — количество наборов входных данных.

Каждый набор входных данных состоит из одной строки, содержащей два целых числа $$$n$$$ и $$$k$$$ ($$$2 \le n \le 30$$$; $$$0 \le k \le \dfrac{n(n-1)}{2}$$$).

Выходные данные

На каждый набор входных данных выведите ответ следующим образом:

  • если искомой перестановки не существует, выведите одно целое число $$$0$$$;
  • иначе выведите $$$n$$$ различных целых чисел от $$$1$$$ до $$$n$$$ — искомую перестановку. Если таких перестановок несколько, вы можете вывести любую из них.
Пример
Входные данные
5
4 5
5 10
5 0
6 8
3 1
Выходные данные
3 1 4 2
5 4 3 2 1
1 2 3 4 5
2 3 5 6 1 4
0