#include <iostream>
using namespace std;
int FindNum(string str, char a, int length)
{
int result = 0;
for(int i=0; i<length; i++)
{
if(str[i] == a)
{
result++;
}
}
return result;
}
int main()
{
int num;
while(cin>>num)
{
//输入num个单词
string input[num];
for(int i=0; i<num; i++)
{
cin>>input[i];
}
//输入str he k
string str;
cin>>str;
int z;
cin>>z;
int length=str.size();
//查找兄弟单词
int iresult = num;
for(int i=0; i<num; i++)
{
//如果长短不一样就不是兄弟
if(input[i].length() != length)
{
input[i]="";
iresult--;
continue;
}
//如果两个完全一样就不是兄弟
else if(input[i] == str)
{
input[i]="";
iresult--;
continue;
}
//如果每个字母的个数不一样就不是兄弟
for(int j=0; j<length; j++)
{
if(FindNum(input[i], str[j], length) != FindNum(str, str[j], length))
{
input[i]="";
iresult--;
break;
}
}
}
cout<<iresult<<endl;
string result[iresult];
int index = 0 ;
for(int i=0; i<num; i++)
{
if(input[i]=="")
{
continue;
}
result[index] = input[i];
index ++;
}
//兄弟单词字典排序(maopao)
for(int i=0; i<iresult; i++)
{
for(int j=0; j<iresult-i-1;j++)
{
for(int m=0; m<length; m++)
{
if(result[j][m]<result[j+1][m])
{
break;
}
else if(result[j][m]>result[j+1][m])
{
swap(result[j], result[j+1]);
break;
}
}
}
}
if(z<iresult)
{
cout<<result[z-1]<<endl;
}
}
return 0;
}