import sys

base = {}
flag1 = True
flag2 = True
w_to_n = {}
for letter in "oqz":
    w_to_n[letter] = 0
for letter in "ij":
    w_to_n[letter] = 1
for letter in "abc":
    w_to_n[letter] = 2
for letter in "def":
    w_to_n[letter] = 3
for letter in "gh":
    w_to_n[letter] = 4
for letter in "kl":
    w_to_n[letter] = 5
for letter in "mn":
    w_to_n[letter] = 6
for letter in "prs":
    w_to_n[letter] = 7
for letter in "tuv":
    w_to_n[letter] = 8
for letter in "wxy":
    w_to_n[letter] = 9


def sorting(num, base):

    sorted_by_lenth = []
    sorted_by_order = []
    sorted_base = sorted(base, key = len)[::-1]
    newnum = num

    def resort_by_lenth(newnum, sorted_base):

        if sorted_base[0] in newnum:
            sorted_by_lenth.append(sorted_base[0])
            newnum_lst = list(newnum.partition(sorted_base[0]))
            newnum_lst.pop(1)
            newnum = "".join(newnum_lst)
        sorted_base.pop(0)

        if len(sorted_base) > 0 and newnum != "":
            resort_by_lenth(newnum, sorted_base)
        pass

    resort_by_lenth(newnum, sorted_base)

    def resort_by_order(num, sorted_by_lenth):

        for _ in range(len(sorted_by_lenth)):
            if num.partition(sorted_by_lenth[_])[0] == '':
                num = num[len(sorted_by_lenth[_]):]
                sorted_by_order.append(base[sorted_by_lenth[_]])
                sorted_by_lenth.pop(_)
                break
        if len(sorted_by_lenth) > 0:
           resort_by_order(num, sorted_by_lenth)
        pass

    resort_by_order(num, sorted_by_lenth)

    if sorted_by_order != []:
        print(" ".join(sorted_by_order))
    else: print("No solution.")

    pass


for line in sys.stdin:
    if line == "-1" or line == "-1\n":
        break
    if flag1:
        flag1 = False
        num = line[:-1]
        continue
    if flag1 == False and flag2:
        flag2 = False
        counter = int(line)
        continue
    converted = ""
    for _ in (line[:-1]):
        converted += str(w_to_n[_])
    base[converted] = line[:-1]
    for letter in line[:-1]:
        converted += str(w_to_n[letter])
    counter -= 1
    if counter <= 0:
        flag1 = True
        flag2 = True
        sorting(num, base)
        base = {}
