import java.util.*;
public class Main { /* HJ27查找兄弟单词 输入描述:输入只有一行。 先输入字典中单词的个数n,再输入n个单词作为字典单词。 然后输入一个单词x 最后后输入一个整数k 输出描述:第一行输出查找到x的兄弟单词的个数m 第二行输出查找到的按照字典顺序排序后的第k个兄弟单词,没有符合第k个的话则不用输出。
输入:3 abc bca cab abc 1 输出:2 bca
输入:6 cab ad abcd cba abc bca abc 1 输出:3 bca 说明: abc的兄弟单词有cab cba bca,所以输出3 经字典序排列后,变为bca cab cba,所以第1个字典序兄弟单词为bca */
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.nextLine();
String[] wordsArr = str.split(" ");
int counts = 0; //兄弟单词个数
String bw = wordsArr[wordsArr.length - 2]; //兄弟单词
String sk = wordsArr[wordsArr.length - 1]; //第k个兄弟单词
int k = Integer.parseInt(sk);
char[] charbw = bw.toCharArray();
ArrayList<String> list = new ArrayList();
for (int i = 0; i < wordsArr.length; i++) {
String word = wordsArr[i];
char[] chars = word.toCharArray();
Arrays.sort(chars);
Arrays.sort(charbw);
if(!word.equals(bw) && word.length()==bw.length() && Arrays.equals(chars,charbw)){
list.add(word);
counts++;
}
}
Collections.sort(list);
// int i = k>list.size() ? " " : k-1;
if(k>list.size()){
System.out.println(counts);
}else{
System.out.println(counts);
System.out.println(list.get(k-1));
}
}
}