let () =
  let alphbets = Array.init 26 (fun x -> x + 97 |> Char.chr ,0) in
  let set_dic str dic =
    String.iter
      (fun c ->
         match c with
         | 'a'..'z' | 'A'..'Z' ->
           let lc = Char.lowercase c in
           let i = Char.code lc - 97 in
           dic.(i) <- (fun x -> fst x,snd x + 1) dic.(i)
         | _ -> ())
      str;
    dic
  in 
  let buf = Buffer.create 1028 in
  try
    while true do
      Buffer.add_string buf (read_line ());
    done
  with End_of_file ->
    set_dic (Buffer.contents buf) alphbets
    |> Array.iter (fun x -> Printf.printf "%c : %d\n" (fst x) (snd x))