import java.util.Scanner;

public class StringAnalyse {

	public static String input() {
		try (Scanner sc = new Scanner(System.in)) {
			System.out.print("> ");
			return sc.nextLine();
		}
	}

	public static void main(String[] args) {
		String s = input();
		execStringAnalyse1(s);
		System.out.println("--------");
		execStringAnalyse2(s);
		System.out.println("--------");
		execStringAnalyse3(s);
	}

	private static void execStringAnalyse3(String s) {
		StringBuilder sb = new StringBuilder(s);
		for (int i = 0; i < sb.length(); i++) {
			char c = sb.charAt(i);
			if (c == '\n')
				continue;
			int res = 1;
			for (int j = i + 1; j < sb.length(); j++) {
				char c2 = sb.charAt(j);
				if (c == c2) {
					res++;
					sb.setCharAt(j, '\n');
				}
			}
			System.out.println("'" + c + "': " + res);
		}
	}

	private static void execStringAnalyse2(String s) {
		StringBuilder sb = new StringBuilder(s);
		for (int i = 0; i < sb.length(); i++) {
			char c = sb.charAt(i);
			int res = 1;
			for (int j = i + 1; j < sb.length();) {
				char c2 = sb.charAt(j);
				if (c == c2) {
					res++;
					sb.deleteCharAt(j);
				} else {
					j++;
				}
			}
			System.out.println("'" + c + "': " + res);
		}
	}

	private static void execStringAnalyse1(String s) {
		for (int i = 0; i < s.length(); i++) {
			char c = s.charAt(i);
			if (charAlreadyProcessedInStringUntilPosI(c, s, i))
				continue;
			int res = countCharInRestString(s, i, c);
			System.out.println("'" + c + "': " + res);
		}

	}

	private static int countCharInRestString(String s, int i, char c) {
		int res = 1;
		for (int j = i + 1; j < s.length(); j++) {
			char c2 = s.charAt(j);
			if (c == c2)
				res++;
		}
		return res;
	}

	private static boolean charAlreadyProcessedInStringUntilPosI(char c, String s, int i) {
		for (int j = 0; j < i; j++) {
			if (c == s.charAt(j))
				return true;
		}
		return false;
	}

}
