#python3
#python3 from collections import defaultdict
while True:
    try:
        #defaultdict主要用来需要对value做初始化的情形。对于字典来说,key必须是hashable,immutable,unique的数据,
        #而value可以是任意的数据类型。如果value是list,dict等数据类型,在使用之前必须初始化为空,有些情况需要把value初始化为特殊值,比如0或者''。
        d=defaultdict(list)
        s=input().split()
        words,find,index,bro=s[1:1+int(s[0])],s[-2],int(s[-1]),[]
        #words代表输入的多个单词,find代表要查找的单词,index代表要查找其在兄弟单词的个数,bro代表兄弟单词存放的列表
        for i in words:
            d["".join(sorted(i))].append(i)
            #对words中的单词按兄弟单词分组,属于兄弟单词的每一个单词排序后都一样,分好之后放入字典中
        for i in d["".join(sorted(find))]:#查找上述字典中和find同属一组兄弟单词的那一组单词
            if i!=find:#找出其中与find不同的单词放入列表bro中
                bro.append(i)
        print(len(bro))
        if bro and index <= len(bro):#如果列表bro为空或者index大于列表bro的长度,则没有结果,不输出
            print(sorted(bro)[index-1])#要先对bro进行排序
    except:
        break
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool isBrothers(string str,string s){
    if(str.size()==s.size()){
        if(str==s)
            return false;
        sort(str.begin(),str.end());
        sort(s.begin(),s.end());
        if(str==s)
            return true;
    }
    return false;
}
int main(){
    int num;
    while(cin >> num){
        string str;
        vector<string> words;
        string find, res;
        int index;
        for(int i=0;i<num;i++){
            cin >> str;
            words.push_back(str);
        }
        sort(words.begin(),words.end());
        cin >> find >> index;
        int count=0;
        for(int i=0;i<num;i++){
            if(isBrothers(find,words[i])){
                count++;
                if(count==index)
                    res=words[i];
            }
        }
        if(!words.empty())
            cout << count << endl;
        if(count>=index)
            cout << res << endl;
    }
    return 0;
}