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));
    }
}

}