module Main (main) where

import qualified Data.Map as M
import Data.Char
import Text.Printf

main :: IO ()
main = interact $ unlines . f . g l . filter (/=' ') . map toLower

l :: M.Map Char Int
l = M.fromList $ map (\a -> (chr a, 0)) [97..122]

g :: M.Map Char Int -> String -> M.Map Char Int
g m (x:xs) = g (M.insertWith' (+) x 1 m) xs
g m [] = m

f :: M.Map Char Int -> [String]
f = M.foldWithKey (\k a b -> (printf "%c : %d" k a) : b) []