fun readLargeInt () = valOf (TextIO.scanStream (LargeInt.scan StringCvt.DEC) TextIO.stdIn) fun int_to_digits n = let fun int_to_digits_aux nn l = if nn > 0 then int_to_digits_aux (nn div 10) ((nn mod 10) :: l) else l in int_to_digits_aux n [] end fun findAns n = let val digits = int_to_digits n in if List.length digits = 1 then List.hd digits else findAns (List.foldl (fn (d, acc) => d + acc) 0 digits) end val () = let val n = readLargeInt () val ans = findAns n in print (LargeInt.toString ans ^ "\n") end