#这道题的问题关键在于如何判断两个单词是否为兄弟单词
#猜测:两个单词只要有完全相同的字母组成,总可以经过交换达到相等
#如果上面的猜测成立,那么就很好判断了
#直接对比二者排序之后的结果,相等即可
#对了,二者不能直接相等,这不符合定义

#思路:
#获取到各个数据
#遍历b,判断兄弟单词,存到ans中
#输出

a=input().split()
n=int(a[0])#字典单词数量
b=a[1:n+1]#字典单词库
x=a[n+1]#原始单词
k=int(a[-1])#序号
ans=[]
for i in b:
    if sorted(i)==sorted(x) and i!=x:
        ans.append(i)
ans=sorted(ans)
print(len(ans))
if k<=len(ans):
    print(ans[k-1])

#试了下,过啦~

#过了之后我又回过头来思考
#上面的那个猜测如何证明呢?

#大概可以这样:
#如果两个单词字母已经完全相同,只是有n个字母位置不同
#那么从原始单词到目标单词(兄弟单词)的变化可以归结为如下过程
#找到其中一个错位的字母,在放到正确位置上去,这样会产生两个结果
#1、正好两个字母都归位,这样问题变成了n-2个字母位置不同
#2、只是归位了一个字母,这样问题变成了n-1个字母位置不同
#假设问题为S,可以得到这个公式:
    #S(n)->S(n-1) or S(n)->S(n-1)
#这样通过递推一定可以将问题缩小为S(3)和S(2)
#S(2)很好解决,将两个字母交换即可
#S(3)可以通过一次交换退化为S(2)

#当然,上述论证只是针对【只允许两两交换】的情况
#如果可以顺便换,那不是直接起飞,不用论证了hahaha