roma :: [(Int, String)] roma = zip [1..12] ["I","II","III","IIII","V","VI","VII","VIII","IX","X","XI","XII"] main = do [r, a] <- words <$> getLine let int_a = read a putStrLn $ solve r int_a solve :: String -> Int -> String solve s a | r <= 0 = snd $ roma !! (12 - r - 1) | otherwise = snd $ roma !! (r - 1) where r = flip mod 12 $ (fst . head . filter f) roma + a f x = s == snd x