/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Map
<Character, Integer
> lettersCount
= new HashMap
<>();
for (int i=0; i <str.length(); i++) {
Integer previousCount
= lettersCount.
get(current
); if (previousCount != null) {
lettersCount.put(current, previousCount + 1);
} else {
lettersCount.put(current, 1);
}
}
}
{
{
return (o2.getValue()).compareTo( o1.getValue() );
}
} );
System.
out.
println(entry.
getKey() + " : " + entry.
getValue()); }
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVN0cmluZyBzdHIgPSAiaGVsbG8gd29ybGQiOwoJCQoJCU1hcDxDaGFyYWN0ZXIsIEludGVnZXI+IGxldHRlcnNDb3VudCA9IG5ldyBIYXNoTWFwPD4oKTsKCQkKCQlmb3IgKGludCBpPTA7IGkgPHN0ci5sZW5ndGgoKTsgaSsrKSB7CgkJCUNoYXJhY3RlciBjdXJyZW50ID0gc3RyLmNoYXJBdChpKTsKCQkJaWYgKENoYXJhY3Rlci5pc0xldHRlcihjdXJyZW50KSkgewoJCQkJSW50ZWdlciBwcmV2aW91c0NvdW50ID0gbGV0dGVyc0NvdW50LmdldChjdXJyZW50KTsKCQkJCWlmIChwcmV2aW91c0NvdW50ICE9IG51bGwpIHsKCQkJCQlsZXR0ZXJzQ291bnQucHV0KGN1cnJlbnQsIHByZXZpb3VzQ291bnQgKyAxKTsKCQkJCX0gZWxzZSB7CgkJCQkJbGV0dGVyc0NvdW50LnB1dChjdXJyZW50LCAxKTsKCQkJCX0KCQkJfQoJCX0KCQlMaXN0PE1hcC5FbnRyeTxDaGFyYWN0ZXIsIEludGVnZXI+PiBsaXN0ID0gbmV3IExpbmtlZExpc3Q8TWFwLkVudHJ5PENoYXJhY3RlciwgSW50ZWdlcj4+KCBsZXR0ZXJzQ291bnQuZW50cnlTZXQoKSApOwoJCUNvbGxlY3Rpb25zLnNvcnQoIGxpc3QsIG5ldyBDb21wYXJhdG9yPE1hcC5FbnRyeTxDaGFyYWN0ZXIsIEludGVnZXI+PigpCiAgICAgICAgewogICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoIE1hcC5FbnRyeTxDaGFyYWN0ZXIsIEludGVnZXI+IG8xLCBNYXAuRW50cnk8Q2hhcmFjdGVyLCBJbnRlZ2VyPiBvMiApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiAobzIuZ2V0VmFsdWUoKSkuY29tcGFyZVRvKCBvMS5nZXRWYWx1ZSgpICk7CiAgICAgICAgICAgIH0KICAgICAgICB9ICk7CgkJZm9yIChNYXAuRW50cnk8Q2hhcmFjdGVyLCBJbnRlZ2VyPiBlbnRyeSA6IGxpc3QpIHsKCQkJU3lzdGVtLm91dC5wcmludGxuKGVudHJ5LmdldEtleSgpICsgIiA6ICIgKyBlbnRyeS5nZXRWYWx1ZSgpKTsKCQl9Cgl9Cn0=