import Control.Monad main :: IO () main = do t <- read <$> getLine ss <- replicateM (fromIntegral t) getLine putStr $ unlines $ map show $ solve ss solve :: [String] -> [Integer] solve ss = map solveOne ss solveOne :: String -> Integer solveOne number = reduceNumbers numbers where numbers = [ read [x] | x <- number] reduceNumbers :: [Integer] -> Integer reduceNumbers numbers | length numbers == 1 = sum ns | otherwise = reduceNumbers $ map (\(a,b) -> a + b) $ zip (take (length ns - 1) ns) (drop 1 ns) where ns = [ sum $ splitNumber n | n <- numbers] splitNumber :: Integer -> [Integer] splitNumber number | number < 10 = [number] | otherwise = ((number `div` 1) `mod` 10) : (splitNumber $ number `div` 10)