<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">import java.util.*;
import java.lang.Exception;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class Pair&lt;F extends Comparable&lt;F&gt;, S extends Comparable&lt;S&gt;&gt; implements Comparable&lt;Pair&lt;F, S&gt;&gt; {
    public final F first;
    public final S second;

    public Pair(F f, S s) { 
        first = f;
        second = s;   
    }
    
    public int compareTo(Pair&lt;F,S&gt; that) {
        int cf = first.compareTo(that.first);
        return cf == 0 ? second.compareTo(that.second) : cf;
    }
}

class count_words {


  public static void main(String args[]) {
    Scanner sc = new Scanner(new InputStreamReader(System.in));
    TreeMap&lt;String,Integer&gt; m = new TreeMap&lt;String,Integer&gt;();
    Locale pl = new Locale("pl","PL");
    Locale.setDefault(pl);
    while(sc.hasNext()) {
      String s = sc.next();
      s = s.toLowerCase(pl).replaceAll("[^\\p{L}]", "");
      if (s.length()&lt;4) continue;
      if (m.containsKey(s)) {
        m.put(s,m.get(s)+1);
      } else {
        m.put(s,1);
      }
    }
    ArrayList&lt;Pair&lt;Integer,String&gt;&gt; tmp = new ArrayList&lt;Pair&lt;Integer,String&gt;&gt;();
    for(String s : m.keySet()) {
        tmp.add(new Pair&lt;Integer,String&gt;(m.get(s),s));
    }
    Collections.sort(tmp);
    Collections.reverse(tmp);
    int i=0;
    for(Pair&lt;Integer,String&gt; p : tmp) {
        i++;
        if (i&gt;20) break;
        System.out.println(""+i+". "+p.second+" (liczba wystapien: "+p.first+")");
        
    }
  }
  
}</pre></body></html>