Problem:
Sum of Numbers

Write a program which reads an integer and prints sum of its digits.

Input

The input consists of multiple datasets. For each dataset, an integer x is given in a line. The number of digits in x does not exceed 1000.

The input ends with a line including single zero. Your program should not process for this terminal symbol.

Output

For each dataset, print the sum of digits in x.

Sample Input

123
55
1000
0

Sample Output

6
10
1

Solution in Haskell (judge verdict: Accepted)

import Control.Monad

y f = f (y f)
main = do
  str <- getLine
  when (str /= "0") $ do
    print $ flip y str $
      \f ss -> case ss of
        []      -> 0
        (s:sl)  -> (read [s] :: Int) + f sl
    main