import Data.Char (isDigit, digitToInt) extractDigits :: String -> [Int] extractDigits = extractDigits' [] where extractDigits' :: [Int] -> String -> [Int] extractDigits' ds [] = ds extractDigits' ds (c : cs) | isDigit c = extractDigits' (digitToInt c : ds) cs | otherwise = extractDigits' ds cs main :: IO () main = putStrLn . show . sum . extractDigits =<< getLine