B. Угадай число!
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Отдыхая после занятий в университете Леша и Дима решили как-то развлечься и придумали следующую игру:

Один человек загадывает неотрицательное целое число a, а другой, задавая некоторые вопросы, должен отгадать его. Вопрос состоит из одного целого неотрицательного числа b. В ответ на вопрос игрок получает количество единичных бит в битовой записи числа a + b.

Леша и Дима уже научились быстро отгадывать число, теперь им интересно как вы справитесь с этой задачей!

Входные данные
0 ≤ a ≤ 109
0 ≤ b ≤ 109
Протокол взаимодействия

Вы можете задать не более 30 вопросов (не включая операцию для вывода загаданного числа).

Для того, чтобы задать вопрос вы должны вывести вопросительный знак «?», и после него через пробел целое число b. Обязательно требуется вывести перевод строки и сделать операцию flush.

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

Для сброса буфера вывода (то есть для операции flush) сразу после перевода строки нужно сделать:

  • fflush(stdout) в языке C++
  • System.out.flush() в Java
  • stdout.flush() в Python
  • flush(output) в Pascal
Пример
Входные данные
? 3
? 40
42
Выходные данные
4
3