L. Lying Faces
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

There are $$$n$$$ people numbered $$$1$$$ to $$$n$$$, and each of them has a nose length which is a positive integer unknown to you. Each person is either a liar or a truth teller. Truth tellers always tell the truth and liars always lie. It is known that there is at least one liar and there are more truth tellers than liars.

Your goal is to find out all the liars. To do that, you are allowed ask at most 10001 queries. In each query, you choose two distinct indices $$$1 \le a, b \le n$$$, and ask the $$$a^\text{th}$$$ person "What is the length of the $$$b^\text{th}$$$ person's nose?". After answering the question, if the $$$a^\text{th}$$$ person is a liar, their nose length increases by an unknown positive integer, which may be different every time.

Interaction

Initially, the jury program sends one integer $$$n$$$ ($$$3 \le n \le 10000$$$) — the number of people.

After that, your program can submit queries to the jury program by printing the following line:

  • $$$\texttt{?} \ a \ b$$$ — ask the $$$a^\text{th}$$$ person about the $$$b^\text{th}$$$ person's nose length ($$$1 \le a, b \le n$$$, $$$a \ne b$$$).

After each query, the jury prints an integer $$$x$$$ on one line. Either:

  • $$$x$$$ is a positive integer, which is the reply from the $$$a^\text{th}$$$ person. In this case you may assume that $$$1 \le x \le 10^9$$$.
  • $$$x$$$ is $$$-1$$$, which means your query is incorrect or you have asked too many queries. After receiving $$$-1$$$, your program should exit immediately to receive the Wrong Answer verdict.

To submit the answer, your program should send the output in the following format (and then exit immediately):

  • $$$\texttt{!} \ k \ p_1 \ p_2 \dots p_k$$$ — the number of liars and their indices in increasing order.

Remember to flush the output after printing a line.

The jury program can be adaptive, which means that the set of liars and the nose lengths may change during interaction, but it's guaranteed that there always exists a valid initial configuration that produces an outcome that is consistent with all the queries.

Examples
Input
5

42
Output

? 3 4

! 2 2 4
Input
3

420

420
Output

? 1 2

? 3 2

! 1 2