def judge(s,target):
l1=len(s)
l2=len(target)
temp1=s
temp2=target
temp1=list(set(temp1))
temp2=list(set(temp2))
temp1.sort()
temp2.sort()
c1=[]
c2=[]
if l1==l2 and temp1==temp2:#两个的个数相同是前提
#要继续看内部的单词个数是否一样
temp3=len(temp1)#单词种类数
for i in range(temp3):
c1.append(s.count(temp1[i]))
c2.append(target.count(temp2[i]))
if c1==c2:
return True
else:
return False
else:
return False
while True:
try:
s=input().split()#输入单词链
n=int(s[0])#输入的单词个数
k=int(s[-1])#兄弟单词的位置
v=s[1:-1:]#单词链
target=v[-1]#目标单词
other=v[:-1:]#字典单词
#开始处理
#首先进行排序
other.sort()
#寻找兄弟单词
l=len(target)
a=[]#兄弟单词存储
for i in other:
#print(i)
if judge(i,target) and i!=target:
a.append(i)
a.sort()#以防万一再次排序
print(len(a),end='\n')
print(a[k-1])
except:
break