Это интерактивная задача
Размышляя над разными несложными генераторами псевдо случайных чисел, Andrew-13 решил рассмотреть линейный генератор, который характеризуется параметрами $$$a$$$, $$$b$$$ и $$$p$$$ ($$$1 \le a \lt p$$$, $$$0 \le b \lt p$$$, $$$p$$$ – простое число, $$$2 \le p \lt 10^9$$$). На вход генератору подаётся время $$$t$$$, а генератор выводит $$$(at + b) \mod p$$$.
Для того чтобы показать ненадёжность такого генератора, Andrew-13 решил написать программу, которая, не зная чисел $$$a$$$, $$$b$$$ и $$$p$$$, находит их, делая запросы к генератору. При этом программа делает не более $$$13$$$ запросов.
Сможете ли вы написать свою программу, которая справится с этой задачей?
В начале каждого теста выбираются числа $$$a$$$, $$$b$$$ и $$$p$$$, соответствующие ограничениям из условия.
Затем ваша программа начинает взаимодействие с интерактором.
Для того чтобы узнать значение ГПСЧ, описанного в условии, выведите «? $$$t$$$» на отдельной строке ($$$0 \le t \lt 10^{18}$$$, $$$t$$$ - целое). Вы получите значение $$$(at + b) \mod p$$$.
Когда программа готова дать ответ, она должна вывести «! $$$a$$$ $$$b$$$ $$$p$$$» на отдельной строке и затем завершиться.
Если вы сделаете более $$$13$$$ запросов во время взаимодействия, ваша программа должна немедленно завершиться, и вы получите вердикт Неправильный ответ. В противном случае вы можете получить произвольный вердикт.
После вывода каждого запроса не забудьте вывести перевод строки и сбросить буфер вывода. В противном случае вы получите вердикт Решение зависло. Для этого используйте:
13 4 12
? 6 ? 12 ? 998244353 ! 7 5 17