Это интерактивная задача. Здесь ваша программа должна по мере решения обмениваться информацией с программой жюри. Обратите внимание, что после вывода каждого сообщения ваша программа должна очищать потоковый буфер, чтобы выведенная вами информация дошла до программы жюри: например, это делают вызовы «fflush(stdout)» или «cout.flush()» в C++, «System.out.flush()» в Java, «flush(output)» в Pascal, «sys.stdout.flush()» в Python.
Если вы еще не знали, NC обожает Рождество. Его бесконечная любовь к этому празднику способна преодолевать световые барьеры, искривлять течение времени и производить взрывы, разрушающие целые галактики.
Одна из самых важных вещей для NC в Рождество - это подарки. Ему стало известно, что Тамара и Малкольм спрятали его подарок где-то на заднем дворе. NC просто обязан проверить свой подарок до Рождества, ведь если подарок окажется не идеальным, то весь праздник будет испорчен! (Но еще есть время избить Тамару и Малкольма молотком и заставить их подарить NC на Рождество что-то действительно стоящее).
Задний двор представляет из себя прямоугольное поле, левый нижний конец которого находится в точке (0, 0), а правый верхний в точке (n, m), таким образом размер поля (n + 1) × (m + 1). К счастью, у NC есть Интерактивный Отыскатель Подарков — устройство, позволяющее определить расстояние от любой точки до подарка. Интерактивный Отыскатель работает следующим образом: NC называет ему точку (x, y), а Отыскатель возвращает ему единственное число, равное |x - X| + |y - Y|, где (X, Y) - место нахождения подарка. До Рождества осталось мало времени, поэтому NC успеет сделать не более чем 10 запросов.
NC очень взволнован что может не успеть найти подарок до Рождества, поэтому он просит вас помочь ему!
В первой строке содержатся два целых числа n и m (0 ≤ n ≤ 109, 0 ≤ m ≤ 109).
После каждого запроса вашей программы программа жюри выводит единственное число, равное расстоянию от запрошенной вами точки до подарка как описано в условии задачи.
Каждый запрос должен состоять из знака вопроса (?), после которого через пробел необходимо вывести ровно два целых числа x и y (0 ≤ x ≤ n, 0 ≤ y ≤ m) — точка, расстояние от которой до подарка вы хотите узнать.
Если вы уверены что нашли точку, в которой находится подарок, вы должны вывести ответ и завершить работу программы. Вывод ответа должен начинаться с восклицательного знака (!), после которого через пробел должны быть выведены два целых числа X и Y (0 ≤ X ≤ n, 0 ≤ Y ≤ m). Вывод ответа учитывается в общем числе запросов.
Если ваш запрос не будет удовлетворять описанным ограничениям, то Интерактивный Отыскатель Подарков сломается, вы не найдете подарок, Рождество будет испорчено, а ваша программа получит вердикт Wrong Answer.
Напоминаем, что после каждого запроса и вывода ответ следует очищать потоковый буфер.
2 2
ответ системы:
1
ответ системы:
3
ответ системы:
0
запрос участника:
? 1 1
запрос участника:
? 2 0
запрос участника:
? 1 2
запрос участника:
! 1 2
1 2
ответ системы:
1
ответ системы:
1
ответ системы:
2
запрос участника:
? 1 1
запрос участника:
? 0 2
запрос участника:
? 0 1
запрос участника:
! 1 2
Строки «запрос участника» и «ответ системы» в примере приведены лишь для того, чтобы было более понятно, в каком порядке выводятся сообщения. При решении задачи вам не нужно выводить эти строки, программа жюри также не будет выводить такие строки.
| Название |
|---|


