import java.io.*; import java.util.*; public class wp { public static void main(String[] args) throws IOException { Reader in = new BufferedReader(new InputStreamReader(System.in)); StreamTokenizer tokenizer = new StreamTokenizer(in); tokenizer.resetSyntax(); tokenizer.wordChars(33,126); tokenizer.whitespaceChars(1,32); var countMap = new HashMap(0xFFFFF); while( tokenizer.nextToken() != StreamTokenizer.TT_EOF) { if (tokenizer.ttype == StreamTokenizer.TT_WORD) { countMap.merge(tokenizer.sval, 1, (number, one) -> number + one); } } Comparator> comparingByFrequency = Map.Entry.comparingByValue(); countMap.entrySet().stream() // Reverse comparation to get the biggest counts first .sorted(comparingByFrequency.reversed()) .map(entry -> entry.getValue()+ " " + entry.getKey()) .forEach(System.out::println); } }