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