public class Main{
    public static boolean ifbro(String s, String test){
        //相同返回false
        if(s.equals(test))return false;
        if(test.length()!=s.length())return false;
        char[] sarray=s.toCharArray();
        char[] testarray=test.toCharArray();
        //两个array排序,完全相等返回ture.
        Arrays.sort(sarray);
        Arrays.sort(testarray);
        int j=0;
        for(Character i:sarray){
            if(i!=testarray[j++]){
                return false;                
            }
        }
        return true;
    } 
    
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNextLine()){
            String whole=sc.nextLine();
            //记录字符串个数n
            int n=0;
            for(int i=0;i<whole.length();i++){
                if(whole.charAt(i)==' ')break;
                n=n*10+whole.charAt(i)-'0';
            }
            //创建string列表,存储输入
            String[] tests=new String[n+1];
            for(int i=Integer.toString(n).length()+1,j=0;i<whole.length()-2;i++){
                Character temp=whole.charAt(i);
                if(temp==' '){
                    j++;
                    if(j>n)break;
                }
                else{
                    if(tests[j]==null)tests[j]="";
                    tests[j]+=temp.toString();
                }
                
            }
            int k=whole.charAt(whole.length()-1)-'0';
            int ans=0;
            //逐个对比string列表是否是兄弟单词
            for(int i=0;i<=n;i++){
                if(ifbro(tests[n],tests[i])){
                    ans++;
                }
                else{
                    //给不是兄弟单词的开头添加字符‘~’,排序时放在最后
                    tests[i]="~"+tests[i];
                }
            }
            Arrays.sort(tests);
            
            System.out.println(ans);
            //k小于ans时才存在
            if(k<=ans){
                System.out.println(tests[k-1]);            
            }

            
        }
        
    }
    
}