E. Рудольф и правильный порядок
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Если вы уже участвовали в нашей олимпиаде, то, вероятно, помните, что в прошлом году Рудольф приобрёл N томов Сверхбольшой Энциклопедии Структур Данных, а его друзья Леонидас и Роберт помогли ему изготовить книжные шкафы.

Рудольфу пришлось потрудиться с заполнением шкафов, поскольку тома энциклопедии требовали расстановки в специальном правильном порядке. Так или иначе, в этом году вышло новое издание Энциклопедии, и количество томов в нём многократно возросло! Рудольф с ужасом размышляет о том, сколько работы по расстановке томов придётся проделать на этот раз, поэтому вновь просит вас о помощи.

Тома энциклопедии нумеруются различными целыми числами от 1 до N. Правильный порядок предполагает, что тома расставлены по возрастанию количества единичных бит в двоичном представлении их номеров, а если для нескольких томов это количество совпадает — по возрастанию номеров томов.

Тома ставятся в шкаф начиная с верхней полки, слева направо. Очередной том ставится в следующий шкаф только тогда, когда предыдущий шкаф полностью заполнен.

Помогите Рудольфу написать программу, которая подскажет, как расставить тома энциклопедии в конкретном шкафу.

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

Первая строка содержит целые числа N, L и K (1 ≤ N ≤ 1018, 1 ≤ L, K ≤ 100) — соответственно количество томов энциклопедии, количество полок в одном шкафу и количество томов, которые умещаются на одной полке.

Вторая строка содержит целое число M (1 ≤ M ≤ 1018) — номер шкафа, который интересует Рудольфа. Гарантируется, что шкаф M будет заполнен полностью или частично.

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

Выведите одну или более строк, каждая из которых содержит номера томов энциклопедии, размещённых в шкафу M, в правильном порядке.

Примеры
Входные данные
10 2 3
2
Выходные данные
6
9
10
7
Входные данные
6 2 2
1
Выходные данные
1
2
4
3