import Data.Char
import Data.Map.Strict (fromList, insertWith, toList)

main :: IO ()
main = do
    line <- getLine
    let counts = fromList [(c, 0) | c <- ['a' .. 'z']]
    mapM_ (\(k, v) -> putStrLn (k : " : " ++ show v)) $ toList $ foldl (\m c -> insertWith (+) c 1 m) counts $ filter isAsciiLower $ map toLower line