fun readStr () = let fun scan reader stream = SOME (StringCvt.splitl (not o Char.isSpace) reader (StringCvt.skipWS reader stream)) in valOf (TextIO.scanStream scan TextIO.stdIn) end val () = let val s1 = readStr () val s2 = readStr () val s3 = readStr () val ans = String.implode ( List.map (fn s => Char.toUpper (String.sub (s, 0))) [s1, s2, s3] ) in print (ans ^ "\n") end