import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
        // 获取输入字符串
        String s = bf.readLine();
        // 将输入的字符串分割成字符串数组
        String[] words = s.split(" ");
        // 提取待查找单词原型,为数组倒数第二个元素
        String str = words[words.length - 2];
        // 原型字符串转字符数组后排序
        char[] chStr=str.toCharArray();
        Arrays.sort(chStr);
        // 提取k值,为数组倒数第一个元素
        int k = Integer.parseInt(words[words.length - 1]);
        // 创建列表存放兄弟单词
        ArrayList<String> broWords = new ArrayList<>();
        // 遍历所给的字典单词,准备统计兄弟单词总个数
        int count = 0;
        for (int i = 1; i < words.length - 2; i++) {
            // 提取与原型单词不相同且长度相等的单词
            if ((!words[i].equals(str)) && words[i].length() == str.length()) {
                // 先将其转换为字符数组
                char[] word = words[i].toCharArray();
                // 排序
                Arrays.sort(word);
                // 判断是否为兄弟单词
                if (Arrays.equals(word,chStr)) {
                    broWords.add(words[i]);
                    count++;   
                }     
            }
        }
        // 输出兄弟单词个数
        System.out.println(count);
        // 对兄弟单词排序后输出第k个
        Collections.sort(broWords);
        if (k > 0 && k <= broWords.size()) {
            System.out.println(broWords.get(k-1));
        }     
    }
}