The Son of Heaven, our beloved Emperor, has commanded you, his first minister, to collect tribute from neighboring kingdoms. Each of them was assigned a tribute amount in silver coins — the kingdom numbered must pay a_i.
However, to demonstrate his boundless mercy, the Emperor decided to collect tribute from only some of these kingdoms, sparing the others. Your overly diligent Minister of Finance, having recorded all the values a_i, precomputed all possible sums of tribute from non-empty subsets — resulting in exactly 2^n - 1 such sums.
Unfortunately, during his work, the minister lost the sheet containing the original tribute values. For such gross negligence, as well as for illegible handwriting, he was promptly executed.
Now all you have is a list of 2^n - 1 sums, written in a rather sloppy manner. Can you reconstruct the original values of a_i from these sums?
The first line contains a single integer z~(1 \le z \le 200) — the number of test cases.
Descriptions of the test cases follow.
Each test consists of two lines:
The first line contains an integer n~(1 \le n \le 20).
The second line contains 2^n - 1 integers, each not exceeding 2 \cdot 10^9, representing all possible sums of non-empty subsets of the multiset of values a_i.
It is guaranteed that all values a_i are positive integers.
The total number of integers across all test cases does not exceed 10^7.
For each test case, print the reconstructed values a_i~(i = 1 .. n) in increasing order.
If reconstruction is impossible, or if there exists more than one possible valid set of values, output the string "NO" — after all, you can't execute the same minister twice.
Example 1