I. Загадка сфинкса
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод
Кто ходит утром на четырех ногах, днем — на двух, а вечером — на трех?

Это интерактивная задача. В этой задаче нет взломов.

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

Поэтому у вас нет выбора и вам нужно решить загадку. У сфинкса есть массив $$$a_1, a_2, \ldots, a_n$$$ из неотрицательных целых чисел, строго меньших $$$2^b$$$. Он просит вас найти максимум среди элементов массива. Конечно, сам массив сфинкс вам не даст, но предоставит значения $$$n$$$ и $$$b$$$. Так как загадку вслепую решить нельзя, вы можете задавать сфинксу вопросы определенного вида. По данной паре целых чисел $$$i, y$$$, сфинкс ответит вам, правда ли, что $$$a_i$$$ больше, чем $$$y$$$. Так как сфинксы не очень терпеливы, вы можете спросить не более $$$3 \cdot (n + b) $$$ таких вопросов.

Сфинксы честные, но в то же время хитрые. Массив может изменяться в промежутках между вашими запросами, но только так, что все предыдущие ответы сфинкса останутся правильными.

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

Первая строка содержит два целых числа $$$n$$$ и $$$b$$$ ($$$1 \leq n, b \leq 200$$$). Оставшаяся часть входных данных будет дана в процессе взаимодействия.

Протокол взаимодействия

В каждом запросе ваша программа должна вывести одну строку с числом $$$i$$$ ($$$0 \leq i \leq n$$$) и бинарной строкой длины ровно $$$b$$$, которая равна бинарному представлению числа $$$y$$$ (от старших разрядов к младшим).

Если $$$i > 0$$$, то этой строчкой вы обозначаете запрос: Правда ли, что $$$a_i$$$ больше, чем $$$y$$$?. Таких запросов может быть не более, чем $$$3 \cdot (n+b)$$$; после каждого такого запроса считайте «yes» (да) или «no» (нет) на отдельной строке — ответ за запрос.

Если же $$$i = 0$$$, то это — последний запрос: $$$y$$$ должен быть равен максимальному значению среди элементов массива, а ваша программа должна немедленно завершиться. Обратите внимание, что этот запрос не учитывается в ограничении на число вопросов.

Обратите внимание, интерактор адаптивный.

После вывода запроса не забудьте вывести перевод строки и сбросить буфер вывода. В противном случае вы получите вердикт Решение «зависло». Для сброса буфера используйте:

  • fflush(stdout) или cout.flush() в C++;
  • System.out.flush() в Java;
  • flush(output) в Pascal;
  • stdout.flush() в Python;
  • смотрите документацию для других языков.

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

Примеры
Входные данные
5 3

yes

no

no

no

no

yes
Выходные данные
5 101

5 110

4 100

3 101

2 001

1 000

0 110
Входные данные
4 3

no

no

no

no
Выходные данные
1 000

2 000

3 000

4 000

0 000
Входные данные
1 1
Выходные данные
0 0
Примечание

Во всех примерах массив зафиксирован изначально.

В первом примере массив равен $$$2, 1, 4, 0, 6$$$.

Во втором примере массив равен $$$0, 0, 0, 0$$$.

В третьем примере массив равен $$$0$$$.

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