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