시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 256 MB52250.000%

문제

Артем проходит учебный тест в электронной системе. Вопрос теста содержит n утверждений, некоторые из которых являются истинными и их необходимо отметить флажками. Поставив некоторые из флажков, можно проверить ответ на правильность. Ответ на вопрос считается правильным, если все истинные утверждения отмечены флажками, а все ложные — нет.

Думать Артему лень, поэтому он решил просто перебрать все варианты расстановки флажков. Для этого он составляет список всех 2 n вариантов их расстановки. В списке каждый вариант расстановки флажков должен присутствовать ровно один раз.

Интуитивно ему кажется, что истинных утверждений много, поэтому варианты расстановки он хочет перебирать в порядке уменьшения количества установленных флажков. Помимо этого, Артем очень ленив и хочет, чтобы для двух подряд идущих вариантов количество позиций, в которых они различаются, не превосходило двух. Помогите Артему.

입력

В первой строке содержится целое число n (1 ≤ n ≤ 16).

출력

Выведите 2 n строк. В i-й строке выведите n символов 0 или 1 — состояние каждого из флажков для i-го варианта ответа, 1 для установленного флажка и 0 для неустановленного. Количество единиц в вариантах должно невозрастать. Количество позиций, в которых различаются две соседние строки, не должно превосходить двух.

예제 입력 1

2

예제 출력 1

11
10
01
00