This is an interactive problem.

Kevin has $$$n$$$ classmates, numbered $$$1, 2, \ldots, n$$$. Any two of them may either be friends or not friends.

Kevin wants to select $$$2k$$$ classmates to form $$$k$$$ teams, where each team contains exactly $$$2$$$ people. Each person can belong to at most one team.

Let $$$u_i$$$ and $$$v_i$$$ be two people in the $$$i$$$-th team. To avoid potential conflicts during team formation, the team members must satisfy one of the following two conditions:

- For all $$$i$$$ ($$$1\leq i \leq k$$$), classmate $$$u_i$$$ and $$$v_i$$$ are friends.
- For all $$$i$$$ ($$$1\leq i \leq k$$$), classmate $$$u_i$$$ and $$$v_i$$$ are not friends.

Kevin wants to determine the maximum $$$k$$$ such that, regardless of the friendship relationships among the $$$n$$$ people, he can always find $$$2k$$$ people to form the teams. After that, he needs to form $$$k$$$ teams. But asking whether two classmates are friends is awkward, so Kevin wants to achieve this while asking about the friendship status of no more than $$$n$$$ pairs of classmates.

The interactor is adaptive. It means that the hidden relationship between classmates is not fixed before the interaction and will change during the interaction.

Example Input 0:
2
3


1

5


1

0

1

0

0

Example Output 0:
1
? 1 2

! 1 2

2
? 1 2

? 3 4

? 3 5

? 1 3

? 2 4

! 1 2 3 5

Notes:
In the first test case:

Kevin claims he can form $$$1$$$ team regardless of the friendship relationships among the $$$3$$$ people.

Kevin asks about the friendship relationship between people $$$1$$$ and $$$2$$$. The jury responds that they are friends.

Kevin answers that he can form a team with people $$$1$$$ and $$$2$$$.

In the second test case:

Kevin claims he can form $$$2$$$ teams regardless of the friendship relationships among the $$$5$$$ people.

Kevin asks about the friendship relationship between people $$$(1, 2), (3, 4), (3, 5), (1, 3), (2, 4)$$$. The jury responds with $$$1, 0, 1, 0, 0$$$.

Kevin answers that he can form two teams with people $$$(1, 2)$$$ and $$$(3, 5)$$$.

It is also possible to form two teams with people $$$(1, 3)$$$ and $$$(2, 4)$$$, since they are both not friends.

Example input:
2
3


1

5


1

0

1

0

0


Example output:
1
? 1 2

! 1 2

2
? 1 2

? 3 4

? 3 5

? 1 3

? 2 4

! 1 2 3 5