This is an interactive problem.
You are given a set of $n$ gold coins, among which $k$ are counterfeit. All coins are laid out in a row. The assumed weight of the $i$-th coin is $i$ grams. If a coin is counterfeit, its weight is $0$ grams.
You are not allowed to touch the coins, and the only available operation is to choose some $1 \le p \le n$ and weigh the first $p$ coins. As a result, you will be told the actual total weight of these coins.
Using as few operations as possible, determine which $k$ coins are counterfeit. The number of points will depend on the number of queries made by your solution; see the scoring section for details.
Interaction
Each test consists of $t$ games in which you must identify the counterfeit coins. The first line contains a single integer $t$ ($1 \le t \le 50$) — the number of games. Each game consists of an interaction in the format described below. After all games are finished, your program must terminate.
At the beginning of each game, you are given two integers $n$ and $k$ ($1 \le n \le 10^9$, $1 \le k \le \min(100, n)$). After this, you can make several weighing queries.
To make a weighing query, output ? p. As a result, you will be returned a single integer $a$. If $a = -1$, your program has exceeded the allowed limit of weighing queries for the game and must terminate immediately. You are allowed to make at most $3500$ weighing queries per game. Otherwise, $a \ge 0$ is the actual total weight of coins $1, 2, \dots, p$.
To output the guessed set, output ! i1 i2 ... ik, where $1 \le i_1, i_2, \dots, i_k \le n$ are the distinct indices of the counterfeit coins in any order. As a result, you will be returned a single integer $a$. If $a = -1$, your answer is incorrect and your program must terminate immediately. Otherwise, $a = 1$, and your program should continue with the next game or terminate if this was the last game.
Note that the interactor is adaptive. It is not guaranteed that the set of counterfeit coins is fixed before the start of the game. The only guarantee is that at any moment in time, the answers given during the game correspond to at least one set of counterfeit coins. Your answer for a game is correct if it corresponds to all answers given during the game, and there is no other set of counterfeit coins that corresponds to all answers.
After outputting each action, output a newline. After outputting each action, flush the output stream.
If you use writeln in Pascal, cout << ... << endl in C++, System.out.println in Java, print in Python, or Console.WriteLine in C#, the output stream is flushed automatically, and no further action is required. If you use another method of output, it is recommended to flush the output stream. Note that you must output a newline in any case.
Examples
Input 1
2 3 2 2 1 10 4 13 13 20 29 1
Output 1
? 3 ! 1 3 ? 5 ? 6 ? 8 ? 10 ! 10 8 6 2
Note
In the first game, coins $1$ and $3$ are counterfeit. Thus, the actual weights of the coins are $[0, 2, 0]$. With one query, we learn their total weight is $2$, after which the set of counterfeit coins can be uniquely determined.
In the second game, coins $2, 6, 8, 10$ are counterfeit. Thus, the actual weights of the coins are $[1, 0, 3, 4, 5, 0, 7, 0, 9, 0]$. From the answers to the weighing queries, the set of counterfeit coins can be uniquely determined.
Subtasks
The tests for this problem consist of $6$ groups. Let $q$ be the number of weighing queries made by the solution during one game.
Points for the first $5$ groups are awarded only if all tests in the group and all required groups are passed. For each of the first $5$ groups, a certain number $maxQ$ is fixed. A test in the first $5$ groups is considered passed if $q \le maxQ$.
The score for each game in the last group is equal to $\min \left( 50, \left\lfloor 50 \frac{k+30}{q} \right\rfloor \right)$. The total score for a test is the minimum score across all games. The total score for the last group is the minimum score across all tests in that group.
Note that the solution receives $100$ points if it makes $\le k + 30$ weighing queries in all tests in all games.
| Group | Points | $n$ | $k$ | $maxQ$ | Required Groups | Comment |
|---|---|---|---|---|---|---|
| 0 | 0 | – | – | $maxQ = 3500$ | – | Tests from example. |
| 1 | 5 | $n \le 1000$ | – | $maxQ = 1000$ | 0 | |
| 2 | 9 | $n \le 1000$ | – | $maxQ = 600$ | 0, 1 | |
| 3 | 10 | – | $k \le 30$ | $maxQ = 1000$ | 0 | |
| 4 | 13 | – | $k = 3$ | $maxQ = 33$ | – | |
| 5 | 13 | – | $k = 4$ | $maxQ = 34$ | – | |
| 6 | $\le 50$ | – | – | $maxQ = 3500$ | – | Partial points. |