{"raw_statement":[{"iden":"statement","content":"_Это интерактивная задача. Здесь ваша программа должна по мере решения обмениваться информацией с программой жюри. Обратите внимание, что после вывода каждого сообщения ваша программа должна очищать потоковый буфер, чтобы выведенная вами информация дошла до программы жюри: например, это делают вызовы «fflush(stdout)» или «cout.flush()» в C++, «System.out.flush()» в Java, «flush(output)» в Pascal, «sys.stdout.flush()» в Python._\n\nЕсли вы еще не знали, NC обожает Рождество. Его бесконечная любовь к этому празднику способна преодолевать световые барьеры, искривлять течение времени и производить взрывы, разрушающие целые галактики. \n\nОдна из самых важных вещей для NC в Рождество - это подарки. Ему стало известно, что Тамара и Малкольм спрятали его подарок где-то на заднем дворе. NC просто обязан проверить свой подарок до Рождества, ведь если подарок окажется не идеальным, то весь праздник будет испорчен! (Но еще есть время избить Тамару и Малкольма молотком и заставить их подарить NC на Рождество что-то действительно стоящее).\n\nЗадний двор представляет из себя прямоугольное поле, левый нижний конец которого находится в точке (0, 0), а правый верхний в точке (n, m), таким образом размер поля (n + 1) × (m + 1). К счастью, у NC есть Интерактивный Отыскатель Подарков — устройство, позволяющее определить расстояние от любой точки до подарка. Интерактивный Отыскатель работает следующим образом: NC называет ему точку (x, y), а Отыскатель возвращает ему единственное число, равное |x - X| + |y - Y|, где (X, Y) - место нахождения подарка. До Рождества осталось мало времени, поэтому NC успеет сделать *не более чем 10 запросов.*\n\nNC очень взволнован что может не успеть найти подарок до Рождества, поэтому он просит вас помочь ему!\n\nВ первой строке содержатся два целых числа n и m (0 ≤ n ≤ 109, 0 ≤ m ≤ 109).\n\nПосле каждого запроса вашей программы программа жюри выводит единственное число, равное расстоянию от запрошенной вами точки до подарка как описано в условии задачи.\n\nКаждый запрос должен состоять из знака вопроса (_?_), после которого через пробел необходимо вывести ровно два целых числа x и y (0 ≤ x ≤ n,  0 ≤ y ≤ m) — точка, расстояние от которой до подарка вы хотите узнать. \n\nЕсли вы уверены что нашли точку, в которой находится подарок, вы должны вывести ответ и завершить работу программы. Вывод ответа должен начинаться с восклицательного знака (_!_), после которого через пробел должны быть выведены два целых числа X и Y (0 ≤ X ≤ n,  0 ≤ Y ≤ m). *Вывод ответа учитывается в общем числе запросов*.\n\nЕсли ваш запрос не будет удовлетворять описанным ограничениям, то Интерактивный Отыскатель Подарков сломается, вы не найдете подарок, Рождество будет испорчено, а ваша программа получит вердикт Wrong Answer. \n\nНапоминаем, что после каждого запроса и вывода ответ следует очищать потоковый буфер.\n\nСтроки «запрос участника» и «ответ системы» в примере приведены лишь для того, чтобы было более понятно, в каком порядке выводятся сообщения. При решении задачи вам не нужно выводить эти строки, программа жюри также не будет выводить такие строки.\n\n"},{"iden":"входные данные","content":"В первой строке содержатся два целых числа n и m (0 ≤ n ≤ 109, 0 ≤ m ≤ 109).После каждого запроса вашей программы программа жюри выводит единственное число, равное расстоянию от запрошенной вами точки до подарка как описано в условии задачи."},{"iden":"выходные данные","content":"Каждый запрос должен состоять из знака вопроса (_?_), после которого через пробел необходимо вывести ровно два целых числа x и y (0 ≤ x ≤ n,  0 ≤ y ≤ m) — точка, расстояние от которой до подарка вы хотите узнать. Если вы уверены что нашли точку, в которой находится подарок, вы должны вывести ответ и завершить работу программы. Вывод ответа должен начинаться с восклицательного знака (_!_), после которого через пробел должны быть выведены два целых числа X и Y (0 ≤ X ≤ n,  0 ≤ Y ≤ m). *Вывод ответа учитывается в общем числе запросов*.Если ваш запрос не будет удовлетворять описанным ограничениям, то Интерактивный Отыскатель Подарков сломается, вы не найдете подарок, Рождество будет испорчено, а ваша программа получит вердикт Wrong Answer. Напоминаем, что после каждого запроса и вывода ответ следует очищать потоковый буфер."},{"iden":"примеры","content":"Входные данные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"},{"iden":"примечание","content":"Строки «запрос участника» и «ответ системы» в примере приведены лишь для того, чтобы было более понятно, в каком порядке выводятся сообщения. При решении задачи вам не нужно выводить эти строки, программа жюри также не будет выводить такие строки."}],"translated_statement":null,"sample_group":[],"show_order":[],"formal_statement":"**Definitions**  \nLet $ n, m \\in \\mathbb{Z} $ with $ 0 \\leq n, m \\leq 10^9 $.  \nLet $ (X, Y) \\in \\{0, 1, \\dots, n\\} \\times \\{0, 1, \\dots, m\\} $ be the unknown target point (gift location).  \nThe distance function is the Manhattan distance: $ d(x, y) = |x - X| + |y - Y| $.\n\n**Constraints**  \n- You may make at most 10 queries.  \n- Each query: output `? x y` with $ 0 \\leq x \\leq n $, $ 0 \\leq y \\leq m $.  \n- Upon discovery, output `! X Y` and terminate.  \n- All queries and final answer must be within bounds.\n\n**Objective**  \nIdentify $ (X, Y) $ using at most 10 Manhattan distance queries.","simple_statement":"You are given a rectangle from (0,0) to (n,m). A gift is hidden at some point (X,Y) inside it.  \nYou can ask at most 10 queries. In each query, you guess a point (x,y), and the system returns the Manhattan distance: |x−X| + |y−Y|.  \nFind the exact location (X,Y) of the gift using no more than 10 queries.","has_page_source":false}