import Data.Char main = do s <- getLine putStrLn $ solve s solve :: String -> String solve s = solve' (zip s (cycle [1..26])) solve' :: [(Char, Int)] -> [Char] solve' ((a, b):ws) | ws == [] = (solve'' a b):[] | otherwise = (solve'' a b ):(solve' ws) solve'' :: Char -> Int -> Char solve'' s n = chr $ (((ord s - 65) + (26 - n)) `mod` 26) + 65