Відносно простий метод стиснення даних виконується шляхом створення так званих дерев Хаффмана для файлу, після чого дерево використовується для стиснення та розпаковки даних. Зазвичай використовують бінарні дерева Хаффмана (тобто кожен вузол — або лист, або має точнісінько два підвузли). Проте, можна будувати і дерева Хаффмана із довільною кількістю піддерев (наприклад, трійкові, або загальніше — -арні дерева).
Дерево Хаффмана для файлу з різними символами має листків. Шлях від кореня до листка, який позначає певний символ, визначає його кодування; кожен крок шляху задає символ коду (який може бути , , ..., N-1). Розташовуючи часті символи ближче до кореня, а рідкісні — далі, досягається кращий ступінь стиснення. Точніше, дерево буде деревом Хаффмана лише якщо кодуванням використовується мінімальна кількість -арних символів для кодування всього файлу.
У цій задачі розглядаються лише такі дерева, в яких кожен вузол — або внутрішній, або листок для деякого символу; листків, що не кодують жодного символу, немає.
Нижче на рисунку зображено приклад трійкового дерева Хаффмана. Символи 'a' та 'e' кодуються одним трійковим символом; менш часті символи 's' та 'p' — двома; а найрідкісніші 'x', 'q' і 'y' — трьома трійковими символами кожен.

Очевидно, якщо згодом потрібно декодувати послідовність -арних символів, важливо знати, яке дерево використано для стиснення. Це можна зробити кількома способами. У цій задачі використовується такий метод: перед даними розміщується заголовок, що містить коди символів у лексикографічному порядку.
Знаючи число вхідних символів , арність дерева і заголовок, відновіть відображення символів у закодовані рядки.
У першому рядку задано ціле число — кількість тестових випадків. Далі для кожного тесту три рядки:
Кількість різних символів (2 \leq Z \leq 20);
Арність () дерева Хаффмана (2 \leq N \leq 10);
Рядок — заголовок повідомлення (кожен символ — цифра у [0, N-1]). Довжина рядка .
Примітка: Хоча і рідко, але для деяких заголовків може існувати кілька варіантів декодування (наприклад, рядок '010011101100' при Z = 5, N = 2). Гарантується, що для кожного тесту існує єдиний розв'язок.
Для кожного тесту виведіть рядків у порядку від до Z-1, кожен — декодований відповідник. Використовуйте формат оригінал->кодування, де оригінал — десяткове число з [0, Z-1], а кодування — рядок кодових цифр ( і ) цього символу.
Приклад 1