This is an interactive problem
You have joined a group of researchers working on neural networks. A neural network is represented as a graph, where the vertices correspond to neurons and the edges represent connections between them. To demonstrate your skills in working with graphs, you need to solve the following problem.
You are given a directed graph with $$$n$$$ vertices, without loops and multiple edges, but you do not know the structure of this graph. You need to find a leaf in this graph or determine that there are no leaves in it (a leaf is defined as a vertex connected to exactly one other vertex, disregarding the orientation of the edges).
To obtain information about the graph, you can make queries. In each query, you can choose sets $$$S$$$ and $$$T$$$, which are subsets of {$$$1, 2, \ldots n$$$}. In response, you will receive the number of edges that start at one of the vertices in set $$$S$$$ and end at one of the vertices in set $$$T$$$ (considering the orientation of the edges). The sets $$$S$$$ and $$$T$$$ may overlap.
You can make no more than $$$n$$$ queries. At any moment, you can output the answer to the problem – the index of the vertex that is a leaf, or $$$-1$$$ if there are no leaves in the graph.
The first line contains the number $$$t$$$ ($$$1 \le t \le 100$$$) – the number of tests.
In each test, the number $$$n$$$ ($$$1 \le n \le 100$$$) is given – the number of vertices in the graph. It is guaranteed that the sum of $$$n$$$ across all test cases does not exceed $$$1000$$$.
Next, your program can choose sets $$$S$$$ = {$$$s_1, s_2, \ldots, s_k$$$} and $$$T$$$ = {$$$t_1, t_2, \ldots, t_r$$$} and output «? $$$k$$$ $$$s_1$$$ $$$s_2 \ldots s_k$$$ $$$r$$$ $$$t_1$$$ $$$t_2 \ldots t_r$$$». After that, you will receive the number of edges that start at one of the vertices in set $$$S$$$ and end at one of the vertices in set $$$T$$$. Note that there should be no extra spaces after the last number in the query.
As soon as the program is ready to provide an answer, you can output «! $$$x$$$», where $$$x$$$ is $$$-1$$$ if no leaf exists, or the index of the leaf otherwise (indexing starts from $$$1$$$). The program should then proceed to process the next test or terminate if this was the last test.
If you make more than $$$n$$$ queries during the interaction, your program should terminate immediately, and you will receive a Wrong Answer verdict. Otherwise, you may receive an arbitrary verdict.
After each query output, do not forget to output a newline and flush the output buffer. Otherwise, you will receive a verdict of Solution stuck. To do this, use:
2 3 1 2 2
? 1 1 2 2 3 ? 2 1 2 2 2 3 ! 1 ! -1
In the first example, there are only 2 edges in the graph – 1→2 and 2→3.
In the second example, the graph is empty.
This example is given to illustrate the interaction with the interactor; it does not guarantee the possibility of finding an answer based on the given queries.