# 定义一个单词的“兄弟单词”为:交换该单词字母顺序(注:可以交换任意次),而不添加、删除、修改原有的字母就能生成的单词。
# 兄弟单词要求和原来的单词不同。例如: ab 和 ba 是兄弟单词。 ab 和 ab 则不是兄弟单词。
# 现在给定你 n 个单词,另外再给你一个单词 x ,让你寻找 x 的兄弟单词里,按字典序排列后的第 k 个单词是什么?
# 输入描述:
# 输入只有一行。 先输入字典中单词的个数n,再输入n个单词作为字典单词。 然后输入一个单词x 最后后输入一个整数k
# 3 abc bca cab abc 1
# 输出
# 2
# bca
# s = '3 abc bca cab abc 1'.split()
s = input().split()
n = int(s[0])
s1 = s[1:n - 2]  # n-2   # ['abc', 'bca', 'cab']
x = s[-2]
k = int(s[-1])
xd = [] # 存储x的兄弟单词
# 先判断是兄弟单词
#(1):首先:长度一致,
# 其次,不能相等,
# 再次,包含的字母相同,区分大小写
for i in s1:
    if len(i) == len(x) and i != x:
        if sorted(i) == sorted(x):
            xd.append(i)
xddpx = sorted(xd)
# print(xddpx)
print(len(xddpx))
if k > len(xddpx):   # 这里处理兄弟单词个数小于要输出的K时,由于无,所以,跳过
    pass  
else:
    print(xddpx[k-1])