module Main (main) where

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

main :: IO ()
main = interact $ unlines . f . g l . filter (`elem` k) . map toLower

k :: String
k = map (\a -> chr a) [97..122]

l :: M.Map Char Int
l = M.fromList $ map (\a -> (a, 0)) k

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.foldrWithKey' (\k a b -> printf "%c : %d" k a : b) []