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 fun readInt () = valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn) fun findIndex x nil = ~1 | findIndex x (h::tl) = if x = h then 0 else 1 + findIndex x tl val () = let val s1 = readStr () val t = readInt () val l = ["XII", "I","II","III","IIII","V","VI","VII","VIII","IX","X","XI"] val tempIndex = (t + findIndex s1 l) mod 12 val index = if tempIndex < 0 then 12 + tempIndex else tempIndex val ans = List.nth (l, index) in print (ans ^ "\n") end