L. Линия без начала, линия без конца
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Это интерактивная задача.

Мы загадали прямую в виде $$$y = kx + b$$$. Ваша задача отгадать эту прямую.

Вы можете делать запросы, в одном вопросе вы указываете точку ($$$x, y$$$) и получаете в ответ кратчайшее расстояние от точки до прямой.

Сможете ли вы справиться не более чем за $$$5$$$ запросов?

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

Гарантируется, что ($$$-100 \le k, b \le 100$$$).

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

Вы можете сразу начать делать запросы. Чтобы это сделать, выведите:

  • «? x y» ($$$-100 \le x, y \le 100$$$)

на отдельной строке. После вывода запроса считайте неотрицательное вещественное число $$$d$$$ с точностью до $$$20$$$ знаков – кратчайшее расстояние от данной вами точки до прямой. Если вы сделаете некорректный запрос или превысите установленный лимит в $$$5$$$ запросов, то в ответ вы получите число $$$-1$$$, в таком случае ваша программа должна немедленно завершиться.

Чтобы вывести ответ, выведите

  • «! k b»

на отдельной строке. Ваш ответ будет считаться правильным, если относительная или абсолютная погрешность коэффициентов $$$k$$$ и $$$b$$$ будет не более $$$10^{-3}$$$.

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

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

1.41421356237309504876

0.70710678118654752438

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

? 0.000 1.000

! 1.0000 2.0001
Входные данные

0.00000000000000000000

0.00000000000000000000

5.00000000000000000000

5.00000000000000000000

2.50000000000000000000
Выходные данные
? 0 5

? 5 5

? 5 0

? 0 0

? 2.5 2.5

! 0.000000011 5.00000003
Примечание

Ввод и вывод для наглядности разделены пустыми строками. Реальный тест не содержит этих пустых строк.