import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

class Main {
    public static void main(String[] args) {
        BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
        String line;
        int c;
        int[] amounts = new int[26];

        try {
            while ((line = buf.readLine()) != null) {
                for (int j = 0; j < line.length(); j++) {
                    c = (int)line.charAt(j);
                        for (int i = 0; i < 26; i++) {
                            if (c == 97 + i || c == 65 + i) { // 97+の方で小文字と、65+の方で大文字との合致を判定
                                amounts[i] += 1;
                            }
                    }
                }
            }
            for (int i = 0; i < 26; i++) {
                System.out.println((char)(i + 97) + " : " + amounts[i]);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
} import java.io.BufferedReader; BufferedReader java.io import java.io.InputStreamReader; InputStreamReader java.io import java.io.IOException; IOException java.io class Main {
    public static void main(String[] args) {
        BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
        String line;
        int c;
        int[] amounts = new int[26];

        try {
            while ((line = buf.readLine()) != null) {
                for (int j = 0; j < line.length(); j++) {
                    c = (int)line.charAt(j);
                        for (int i = 0; i < 26; i++) {
                            if (c == 97 + i || c == 65 + i) { // 97+の方で小文字と、65+の方で大文字との合致を判定
                                amounts[i] += 1;
                            }
                    }
                }
            }
            for (int i = 0; i < 26; i++) {
                System.out.println((char)(i + 97) + " : " + amounts[i]);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
} Main public static void main(String[] args) {
        BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
        String line;
        int c;
        int[] amounts = new int[26];

        try {
            while ((line = buf.readLine()) != null) {
                for (int j = 0; j < line.length(); j++) {
                    c = (int)line.charAt(j);
                        for (int i = 0; i < 26; i++) {
                            if (c == 97 + i || c == 65 + i) { // 97+の方で小文字と、65+の方で大文字との合致を判定
                                amounts[i] += 1;
                            }
                    }
                }
            }
            for (int i = 0; i < 26; i++) {
                System.out.println((char)(i + 97) + " : " + amounts[i]);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    } main {
        BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
        String line;
        int c;
        int[] amounts = new int[26];

        try {
            while ((line = buf.readLine()) != null) {
                for (int j = 0; j < line.length(); j++) {
                    c = (int)line.charAt(j);
                        for (int i = 0; i < 26; i++) {
                            if (c == 97 + i || c == 65 + i) { // 97+の方で小文字と、65+の方で大文字との合致を判定
                                amounts[i] += 1;
                            }
                    }
                }
            }
            for (int i = 0; i < 26; i++) {
                System.out.println((char)(i + 97) + " : " + amounts[i]);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    } BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); buf new BufferedReader(new InputStreamReader(System.in)) String line; line int c; c int[] amounts = new int[26]; amounts new int[26] 26 try {
            while ((line = buf.readLine()) != null) {
                for (int j = 0; j < line.length(); j++) {
                    c = (int)line.charAt(j);
                        for (int i = 0; i < 26; i++) {
                            if (c == 97 + i || c == 65 + i) { // 97+の方で小文字と、65+の方で大文字との合致を判定
                                amounts[i] += 1;
                            }
                    }
                }
            }
            for (int i = 0; i < 26; i++) {
                System.out.println((char)(i + 97) + " : " + amounts[i]);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } IOException e {
            e.printStackTrace();
        } e.printStackTrace() e.printStackTrace e {
            while ((line = buf.readLine()) != null) {
                for (int j = 0; j < line.length(); j++) {
                    c = (int)line.charAt(j);
                        for (int i = 0; i < 26; i++) {
                            if (c == 97 + i || c == 65 + i) { // 97+の方で小文字と、65+の方で大文字との合致を判定
                                amounts[i] += 1;
                            }
                    }
                }
            }
            for (int i = 0; i < 26; i++) {
                System.out.println((char)(i + 97) + " : " + amounts[i]);
            }
        } while ((line = buf.readLine()) != null) {
                for (int j = 0; j < line.length(); j++) {
                    c = (int)line.charAt(j);
                        for (int i = 0; i < 26; i++) {
                            if (c == 97 + i || c == 65 + i) { // 97+の方で小文字と、65+の方で大文字との合致を判定
                                amounts[i] += 1;
                            }
                    }
                }
            } (line = buf.readLine()) != null (line = buf.readLine()) line buf.readLine() buf.readLine buf null {
                for (int j = 0; j < line.length(); j++) {
                    c = (int)line.charAt(j);
                        for (int i = 0; i < 26; i++) {
                            if (c == 97 + i || c == 65 + i) { // 97+の方で小文字と、65+の方で大文字との合致を判定
                                amounts[i] += 1;
                            }
                    }
                }
            } for (int j = 0; j < line.length(); j++) {
                    c = (int)line.charAt(j);
                        for (int i = 0; i < 26; i++) {
                            if (c == 97 + i || c == 65 + i) { // 97+の方で小文字と、65+の方で大文字との合致を判定
                                amounts[i] += 1;
                            }
                    }
                } int j = 0; int j = 0; j 0 j < line.length() j line.length() line.length line j++ j++ j {
                    c = (int)line.charAt(j);
                        for (int i = 0; i < 26; i++) {
                            if (c == 97 + i || c == 65 + i) { // 97+の方で小文字と、65+の方で大文字との合致を判定
                                amounts[i] += 1;
                            }
                    }
                } {
                    c = (int)line.charAt(j);
                        for (int i = 0; i < 26; i++) {
                            if (c == 97 + i || c == 65 + i) { // 97+の方で小文字と、65+の方で大文字との合致を判定
                                amounts[i] += 1;
                            }
                    }
                } c = (int)line.charAt(j) c (int)line.charAt(j) line.charAt line j for (int i = 0; i < 26; i++) {
                            if (c == 97 + i || c == 65 + i) { // 97+の方で小文字と、65+の方で大文字との合致を判定
                                amounts[i] += 1;
                            }
                    } int i = 0; int i = 0; i 0 i < 26 i 26 i++ i++ i {
                            if (c == 97 + i || c == 65 + i) { // 97+の方で小文字と、65+の方で大文字との合致を判定
                                amounts[i] += 1;
                            }
                    } {
                            if (c == 97 + i || c == 65 + i) { // 97+の方で小文字と、65+の方で大文字との合致を判定
                                amounts[i] += 1;
                            }
                    } if (c == 97 + i || c == 65 + i) { // 97+の方で小文字と、65+の方で大文字との合致を判定
                                amounts[i] += 1;
                            } c == 97 + i || c == 65 + i c == 97 + i c 97 + i 97 i c == 65 + i c 65 + i 65 i { // 97+の方で小文字と、65+の方で大文字との合致を判定
                                amounts[i] += 1;
                            } amounts[i] += 1 amounts[i] amounts i 1 for (int i = 0; i < 26; i++) {
                System.out.println((char)(i + 97) + " : " + amounts[i]);
            } int i = 0; int i = 0; i 0 i < 26 i 26 i++ i++ i {
                System.out.println((char)(i + 97) + " : " + amounts[i]);
            } {
                System.out.println((char)(i + 97) + " : " + amounts[i]);
            } System.out.println((char)(i + 97) + " : " + amounts[i]) System.out.println System.out System System.out (char)(i + 97) + " : " + amounts[i] (char)(i + 97) + " : " + amounts[i] (char)(i + 97) i 97 " : " amounts[i] amounts i String[] args args
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

class Main {
    public static void main(String[] args) {
        BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
        String line;
        int c;
        int[] amounts = new int[26];

        try {
            while ((line = buf.readLine()) != null) {
                for (int j = 0; j < line.length(); j++) {
                    c = (int)line.charAt(j);
                        for (int i = 0; i < 26; i++) {
                            if (c == 97 + i || c == 65 + i) { // 97+の方で小文字と、65+の方で大文字との合致を判定
                                amounts[i] += 1;
                            }
                    }
                }
            }
            for (int i = 0; i < 26; i++) {
                System.out.println((char)(i + 97) + " : " + amounts[i]);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}