Problem:
Counting Characters

Write a program which counts and reports the number of each alphabetical letter. Ignore the case of characters.

Input

A sentence in English is given in several lines.

Output

Prints the number of alphabetical letters in the following format:

a : The number of 'a'
b : The number of 'b'
c : The number of 'c'
.
.
z : The number of 'z'

Constraints

The number of characters in the sentence < 1200

Sample Input

This is a pen.

Sample Output

a : 1
b : 0
c : 0
d : 0
e : 1
f : 0
g : 0
h : 1
i : 2
j : 0
k : 0
l : 0
m : 0
n : 1
o : 0
p : 1
q : 0
r : 0
s : 2
t : 1
u : 0
v : 0
w : 0
x : 0
y : 0
z : 0

Solution in C# (judge verdict: Accepted)

using System;
using System.Collections.Generic;

namespace ITP1_8_C
{
	class Program
	{
		static void Main(string[] args)
		{
			List<string> vs = new List<string>();
			Dictionary<char, int> dict = new Dictionary<char, int> {
				{'a', 0}, {'b', 0}, {'c', 0}, {'d', 0}, {'e', 0},
				{'f', 0}, {'g', 0}, {'h', 0}, {'i', 0}, {'j', 0},
				{'k', 0}, {'l', 0}, {'m', 0}, {'n', 0}, {'o', 0},
				{'p', 0}, {'q', 0}, {'r', 0}, {'s', 0}, {'t', 0},
				{'u', 0}, {'v', 0}, {'w', 0}, {'x', 0}, {'y', 0}, {'z', 0}
			};

			// 入力
			while(true) {
				string str = Console.ReadLine();
				if(str == null) {
					break;
				}

				vs.Add(str);
			}

			// カウント
			foreach(string v in vs) {
				foreach(char c in v) {
					if(dict.ContainsKey(char.ToLower(c))) {
						dict[char.ToLower(c)]++;
					}
				}
			}

			// 出力
			foreach(KeyValuePair<char, int> d in dict) {
				Console.WriteLine($"{d.Key} : {d.Value}");
			}
		}
	}
}