import Data.Bits import Control.Arrow love :: Int -> [Int] -> [Int] love x = case shiftR x 16 of 0 -> adore tail (x .&. 255) 1 -> adore ((((x .&. 255)):).tail) (x' .&. 255) 2 -> adore (((x .&. 255)):) (x' .&. 255) 3 -> (>>= id) . replicate (x .&. 65535) where x' = shiftR x 8 adore f a = uncurry (++) . second f . splitAt a bormand = [76,111,118,101,32,66,111,114,109,97,110,100,32] podushka = [196650,65611,66888,66156,67137,66412,67395,68168,65897,67668,133986,134209,68427,67909,196610] main = putStrLn $ reverse (flip scanr bormand love podushka) >>= fmap toEnum