This is an interactive problem. (If you want to know about interactive problems, click here)
There are stones. Stones are enumerated from to . There is an intelligent frog too. Jumping capability of the frog never decreases, but it may change at most times. If his jumping capability is on a given day, he can go exactly to stone from stone in a valid jump, if is not greater than .
Initially, all of the stones are uncolored. The frog wishes to color all of the stones. Every morning, the frog discovers himself in the first uncolored stone (i.e. uncolored stone with smallest index). During that whole day, his jumping capability does not change and he keeps jumping as long as it can. Whenever he reaches an uncolored stone, he colors it with color if his jumping capability is during that day. However, the frog is clever. Whenever he reaches an already colored stone, he does not color it again and keeps moving (Note that he must color initial stone of that day). He stops jumping for that day, only if jumping from his current stone is not valid.
Whenever all of the stones are colored, the frog goes back to play with his friends.
You do not know the number of days to complete the task, you do not even know the jumping capability of the frog each day. You can do queries, asking for color of a stone.
Retrieve the number of days to complete the task and color of every stone.
First line contains an integer , the number of test cases. For each case, first line contains an integer , the number of stones.
Sum of over all test cases does not exceed .
You can ask at most queries for each test case. To ask a query just print an integer, , then read an integer , the color of the stone . There will be at most distinct colors for each test case.
When you can determine the color of all stones print (which is not counted as a query). In the next line, print the number of days the frog needed to color all stones. In the next line print integers, separated by spaces, where is the color of stone .
After that read an integer, . If is , then it means your output is wrong for that test case and you should terminate the program immediately and you will receive Wrong Answer verdict. If is not , then process the next test case. If at any moment the number of query asked is greater than or an invalid query is asked, then you will receive an integer and you should terminate the program immediately and you will receive Wrong Answer verdict.
Imagine a valid example, where , and colors of the stones are .
Interaction may happen as ,
It takes the frog days to complete.
indicates what your program reads and indicates what your program writes. These symbols are here to make it easy to understand. You do not have to print such symbols from your program.