import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map.Entry; import java.util.Scanner; public class StringChat { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); sc.close(); HashMap hashmap = new HashMap(); for (int i = 0; i < s.length(); i++) { if (hashmap.containsKey(s.charAt(i))) { hashmap.put(s.charAt(i), hashmap.get(s.charAt(i)) + 1); } else { hashmap.put(s.charAt(i), 1); } } Iterator iter = hashmap.entrySet().iterator(); while (iter.hasNext()) { @SuppressWarnings("unchecked") Entry next = (Entry)iter.next(); Entry entry = next; Character c = (Character) entry.getKey(); Integer n = (Integer) entry.getValue(); System.out.println(c + " : " + n); } List> list = new ArrayList>(hashmap.entrySet()); Collections.sort(list, new Comparator>() { @Override public int compare(Entry o1, Entry o2) { return o1.getValue() - o2.getValue(); } }); StringBuilder strBuilder = new StringBuilder(); for (int i = 0; i < list.size(); i++) for (int j = 0; j < list.get(i).getValue(); j++) strBuilder.append(list.get(i).getKey()); System.out.println(strBuilder.toString()); } }