#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
#include<set>
using namespace std;
int main(){
int n,k;
string t;
cin>>n;
vector<string> ss(n);
for(int i=0;i<n;i++){
cin>>ss[i];
}
cin>>t;
cin>>k;
//对目标字符串 统计字符出现个数
vector<int> hash(26);
for(char c:t){
hash[c-'a']++;
}
multiset<string> set;//使用multiset可以自动按字典序排序,而且可以包含重复的
for(string& s:ss){//遍历每个字符串,并统计字符出现个数
vector<int> tmp(26);
for(char c:s){
tmp[c-'a']++;
}
bool flag=true;
for(int i=0;i<26;i++){
if(hash[i]==tmp[i]) continue;
else{
flag=false;
break;
}
}
if(flag&&s!=t) set.insert(s);//如果字符相等,那么插入集合中
}
int len=set.size();
cout<<len<<endl;
if(k<=len){//如果k比字典还要大,那么就不输出结果
auto it=set.begin();
while(k>1){
it++;
k--;
}
cout<<*it<<endl;
}
}