Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

No tag edit access

В условии задачи недавно были сделаны правки. Просмотреть изменения.

×
E. Guess the Root

time limit per test

2 secondsmemory limit per test

256 megabytesinput

standard inputoutput

standard outputJury picked a polynomial $$$f(x) = a_0 + a_1 \cdot x + a_2 \cdot x^2 + \dots + a_k \cdot x^k$$$. $$$k \le 10$$$ and all $$$a_i$$$ are integer numbers and $$$0 \le a_i < 10^6 + 3$$$. It's guaranteed that there is at least one $$$i$$$ such that $$$a_i > 0$$$.

Now jury wants you to find such an integer $$$x_0$$$ that $$$f(x_0) \equiv 0 \mod (10^6 + 3)$$$ or report that there is not such $$$x_0$$$.

You can ask no more than $$$50$$$ queries: you ask value $$$x_q$$$ and jury tells you value $$$f(x_q) \mod (10^6 + 3)$$$.

Note that printing the answer doesn't count as a query.

Interaction

To ask a question, print "? $$$x_q$$$" $$$(0 \le x_q < 10^6 + 3)$$$. The judge will respond with a single integer $$$f(x_q) \mod (10^6 + 3)$$$. If you ever get a result of $$$−1$$$ (because you printed an invalid query), exit immediately to avoid getting other verdicts.

After printing a query do not forget to output end of line and flush the output. Otherwise, you will get Idleness limit exceeded. To do this, use:

- fflush(stdout) or cout.flush() in C++;
- System.out.flush() in Java;
- flush(output) in Pascal;
- stdout.flush() in Python;
- see documentation for other languages.

When you are ready to answer, print "! $$$x_0$$$" where $$$x_0$$$ is the answer or $$$-1$$$ if there is no such $$$x_0$$$.

You can ask at most $$$50$$$ questions per test case.

Hack Format

To hack, use the following format.

The only line should contain $$$11$$$ integers $$$a_0, a_1, \dots, a_{10}$$$ ($$$0 \le a_i < 10^6 + 3$$$, $$$\max\limits_{0 \le i \le 10}{a_i} > 0$$$) — corresponding coefficients of the polynomial.

Examples

Input

1000002 0

Output

? 0 ? 1 ! 1

Input

5 2 1

Output

? 2 ? 1 ? 0 ! -1

Note

The polynomial in the first sample is $$$1000002 + x^2$$$.

The polynomial in the second sample is $$$1 + x^2$$$.

Codeforces (c) Copyright 2010-2020 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Sep/29/2020 21:10:50 (h3).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|