EduBrick

O. Код Грея

3000 мс · 256 МБ · всё или ничего

Выведите все 2N2^N строк длины NN из нулей и единиц так, чтобы любые две соседние в выводе строки отличались ровно в одной позиции. Первой должна идти строка из одних нулей.

Такой порядок называется кодом Грея. Он существует при любом NN и строится рекурсивно: возьмите код Грея длины N−1N-1, припишите ко всем строкам ноль, затем выпишите тот же код в обратном порядке с единицей впереди.

Ответ единственный, если дополнительно потребовать, чтобы вторая строка отличалась от первой в последней позиции. Это условие и имеется в виду.

Формат ввода

Одна строка содержит число NN (1≤N≤151 \le N \le 15).

Формат вывода

Все 2N2^N строк, по одной на строку, в порядке кода Грея.

Примеры

ввод
3
вывод
000
001
011
010
110
111
101
100
Войдите, чтобы отправлять решения.