Это интерактивная задача.
Шахматная доска $$$8 \times 8$$$ занумерована стандартным способом: горизонтали — цифрами от 1 до 8, вертикали — строчными латинскими буквами от 'a' до 'h' так, что левый нижний угол — a1, а правый верхний — h8.
На шахматной доске находится конь, изначальная позиция которого неизвестна. Он может ходить на две клетки в одном направлении и на одну клетку в перпендикулярном направлении, оставаясь в пределах доски. Ход коня задаётся следующим образом: сначала указывается смещение по горизонтали $$$x$$$ (положительные значения — вправо), затем — смещение по вертикали $$$y$$$ (положительные значения — вверх).
Если ход сделать удалось, конь перемещается на новое поле и программа жюри выдаёт строку, состоящую из одного символа '+'. Если же поле назначения находится за пределами доски, конь остаётся на месте и программа жюри выдаёт строку, состоящую из одного символа '-'.
Ваша задача — определить изначальную позицию коня, сделав не более попыток 10 хода (удачных или неудачных).
Взаимодействие начинает программа участника выводом запроса. Каждый запрос имеет вид «? $$$x$$$ $$$y$$$», где $$$x$$$ и $$$y$$$ — целые числа и $$$|xy|=2$$$. В ответ на запрос программа жюри выдаёт строку, состоящую из символа '+', если ход сделать удалось, и '-', если ход сделать не удалось.
Когда программа участника готова вывести ответ, она вместо запроса должна вывести «! pos», где $$$pos$$$ — изначальная позиция коня, заданная в стандартной шахматной нотации. После этого программа должна завершить своё исполнение.
+ + - - +
? 2 1 ? -2 -1 ? 2 -1 ? -1 2 ? 1 2 ! a1