Пожалуйста, подпишитесь на официальный канал Codeforces в Telegram по ссылке https://t.me/codeforces_official. ×

B2. Перестановки
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Вам дана перестановка p чисел 1, 2, ..., n. Давайте обозначим через f(p) следующую сумму:

Найдите лексикографически m-ю перестановку длины n, обладающую максимальным возможным значением f(p).

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

Единственная строка входных данных содержит два целых числа n и m (1 ≤ m ≤ cntn), где cntn — количество перестановок длины n, обладающих максимальным возможным значением f(p).

Задача состоит из двух подзадач, которые отличаются друг от друга ограничениями на входные данные. За решение каждой подзадачи вы получите определенное количество баллов. Описание подзадач следует ниже.

  • В подзадаче B1 (3 балла), выполняется ограничение 1 ≤ n ≤ 8.
  • В подзадаче B2 (4 балла), выполняется ограничение 1 ≤ n ≤ 50.
Выходные данные

Выведите n чисел — искомую перестановку.

Примеры
Входные данные
2 2
Выходные данные
2 1 
Входные данные
3 2
Выходные данные
1 3 2 
Примечание

В первом примере из условия обе перестановки чисел {1, 2} приводят к максимальному возможному значению f(p), равному 4. Из них (2, 1) идет второй в лексикографическом порядке.