import java.util.ArrayList;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

public class Main {
	static class Keyword{
		String string;
		int count;
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		TreeMap<String, Integer> map=new TreeMap<>();
		String string[]=scanner.nextLine().split(" ");
		for (int i = 0; i < string.length; i++) {
			map.put(string[i], map.getOrDefault(string[i], 0)+1);
		}
		ArrayList<Keyword> list=new ArrayList<>();
		for (Map.Entry<String, Integer> entry : map.entrySet()) {
			if(entry.getValue()>=3) {
				Keyword keyword=new Keyword();
				keyword.string=entry.getKey();
				keyword.count=entry.getValue();
				list.add(keyword);
			}
			
		}
		list.sort((k1,k2)->{
			if(k1.count!=k2.count) {
				return k2.count-k1.count;
			}
			return k1.string.compareTo(k2.string);
		});
		for (Keyword keyword : list) {
			System.out.println(keyword.string);
		}
		
		
	}

}

这题很适合使用键值对的形式先行存储数据,后面要排序就把符合条件的键值对生成对应的对象,然后传给集合排序