Задача D. Обратный кузнечик

Автор:Владимир Ульянцев   Ограничение времени:2 сек
Входной файл:grasshopper.in   Ограничение памяти:256 Мб
Выходной файл:grasshopper.out  
Максимальный балл:100  

Условие

При подготовке пакета были использованы материалы сайта школьных олимпиад по информатике.

Учитель дал Вове задание решить задачу о кузнечике. Она состоит в следующем.

В парке в ряд растут n травинок. Находясь на первой из них, кузнечик хочет, совершая прыжки, добраться до последней травинки с номером n. При этом кузнечик за один прыжок может прыгать только на одну или две травинки вперед. К несчастью, некоторые травинки сломались и кузнечику нельзя на них прыгать. Зная, какие травинки сломались и считая, что первая и последняя травинки не сломаны, можно найти число путей, которыми кузнечик может добраться с первой травинки до последней. Вова быстро справился с решением этой задачи и придумал к ней обратную.

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

Решения, работающие для n ≤ 20 и k ≤ 10000 будут оцениваться из 40 баллов.

Решения, работающие для k ≤ 106 будут оцениваться из 70 баллов.

Формат входного файла

Входной файл содержит два целых числа n и k (2 ≤ n ≤ 1000, 0 ≤ k ≤ 1018) — число травинок и различных путей, соответственно.

Формат выходного файла

В единственной строке выходного файла выведите через пробел n чисел — описания травинок. Сломанной травинке соответствует число 0, целой — 1. Первая и последняя травинки должны быть целыми. Если существует несколько ответов, то выведите любой.

Если ответа не существует, то выведите в выходной файл единственное слово "Impossible".

Примеры тестов

Входной файл (grasshopper.in) Выходной файл (grasshopper.out)
1
3 1
1 0 1
2
3 2
1 1 1
3
4 0
1 0 0 1
4
566 239
Impossible

0.040s 0.008s 15