Дань
Сын Неба, наш любимый император, приказал Вам, его первому министру, вымогать дань из n соседних королевств. Каждому даннику было назначено число серебряных монет для оплаты - i - ое королевство должно заплатить a[i]
. Чтобы показать Свою безграничную милость, император решил взять деньги только в некоторых странах, пощадив остальные. Ваш чрезмерно усердный министр финансов, записав все значения a[i]
, уже подготовил все возможные 2^n
- 1 значений дохода - суммы непустых подмножеств даней. К сожалению, в процессе работы министр потерял лист бумаги со значениями дохода. За это нарушение, а также за плохую каллиграфию он был быстро казнен.
Сейчас у Вас имеется только 2^n
- 1 сумм, написанные довольно плохо. Можете ли вы восстановить значения дани из них?
Входные данные
Первая строка содержит количество тестов z (1 ≤ z ≤ 200). Описание каждого теста следующее.
Каждый тест содержит две строки: первыя содержит число n (1 ≤ n ≤ 20), вторая - 2^n
- 1 целых чисел, не превосходящих 2 * 109
, указывающих все возможные суммы даней. Считайте что значения всех даней - положительные целые числа. Общее количество сумм во всех тестах не превосходит 10^7
.
Выходные данные
Для каждого теста выведите восстановленные значения a[i]
для i = 1, 2, .., n в возрастающем порядке. Если не существует соотвественных входных значений, или если существует несколько возможностей, то выведите "NO" - Вы же не можете никого казнить дважды.