集合list1存储倒数第二个元素(目标字符串),list2存储第二个字符串到倒数第三个元素(遍历比较的字符串),list3存储兄弟字符串,list4用来做中间集合为list1排序,排序不能影响list1,否则程序出错。

import java.util.*;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNextLine()){
            int count=0;
            String s = sc.nextLine();
            if(s.equals("")){
                break;
            }
            String[] s1 = s.split(" ");
            int num=Integer.parseInt(s1[0]);

            char[] c1 = s1[s1.length - 2].toCharArray();
            //System.out.println(c1);
            List<Character> list1 = new ArrayList<>();
            for(int i=0;i<c1.length;i++){
                list1.add(c1[i]);
            }
            //System.out.println(list1);
            List<String> list3 = new ArrayList<>();
            List<Character> list2 = new ArrayList<>();
            List<Character> list4 = new ArrayList<>();
            for(int i=1;i<=num;i++) {
                for (int j = 0; j < s1[i].length();j++) {
                    char[] c2 = s1[i].toCharArray();
                    list2.add(c2[j]);
                }
                //System.out.println(list2);
                //System.out.println(list2.size());
                boolean flag = true;
                boolean flag2 = true;
                if(list1.size()==list2.size()){
                    for (int i1 = 0; i1 < list1.size(); i1++) {
                        if (list1.get(i1) != list2.get(i1)) {
                            flag=false;
                            break;
                        }
                    }
                    for (int i1 = 0; i1 < list1.size(); i1++) {
                        list4.add(list1.get(i1));
                    }
                    Collections.sort(list4);
                    Collections.sort(list2);
                    for (int i1 = 0; i1 < list4.size(); i1++) {
                        if (list4.get(i1) != list2.get(i1)) {
                            flag2 = false;
                            break;
                        }
                    }
                    if (flag == false && flag2 == true) {
                        list3.add(s1[i]);
                        //System.out.println(list3);
                        count++;
                        //System.out.println(count);
                    }
                    list4.clear();
                }
                list2.clear();
            }
            Collections.sort(list3);
            int num2 = Integer.parseInt(s1[s1.length - 1]);
            //System.out.println(num2);
            System.out.println(count);
            if (count != 0&&list3.size()>=num2) {
                System.out.println(list3.get(num2 - 1));
            }
            list3.clear();
        }
    }
}