G. Guess the Polynomial
time limit per test
5 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

This is an interactive problem.

There is a hidden polynomial $$$f(x)=\sum_{i=1}^n a_i\cdot x^{p_i}$$$ where $$$0\le n\le 10^3,1\le a_i\le 10^5$$$, $$$0\le p_i\le 8\cdot 10^6$$$, and $$$p_1,p_2,\dots,p_n$$$ are pairwise distinct.

You can query in the format "$$$?\ x$$$", and the interactor will respond you $$$f(x)\bmod 998\,244\,353$$$.

You need to find the function by no more than $$$2\cdot 10^4$$$ queries.

Interaction

You can make no more than $$$2\cdot 10^4$$$ queries to guess the polynomial. To make a query, output "$$$?\ x$$$" $$$(0\le x \lt 998\,244\,353)$$$ on a separate line, then you should read the response from standard input.

To give your answer, firstly print "$$$!\ n$$$" on a separate line, where $$$n$$$ indicates the number of monomials. For each monomial $$$a_i\cdot x^{p_i}$$$, print "$$$p_i\ a_i$$$" on a separate line. You can print the $$$n$$$ monomials in an arbitrary order. The output of the answer is not counted towards the limit of $$$2\cdot 10^4$$$ queries.

After that, your program should terminate.

After printing a query, do not forget to output end of line and flush the output. To do this, use fflush(stdout) or cout.flush() in C++, System.out.flush() in Java, flush(output) in Pascal, or stdout.flush() in Python.

It is guaranteed that the polynomial is fixed in advance.

Example
Input

3

4

7
Output
? 0

? 1

? 2

! 2
0 3
2 1
Note

The polynomial in the example is $$$f(x)=x^2+3$$$.