import Control.Monad (forM_) main :: IO () main = do n <- readLn -- Loop from 1 to n, applying the fizzBuzz function to each i forM_ [1..n] $ \i -> do putStrLn (fizzBuzz i) fizzBuzz :: Int -> String fizzBuzz n | n `mod` 15 == 0 = "FizzBuzz" | n `mod` 3 == 0 = "Fizz" | n `mod` 5 == 0 = "Buzz" | otherwise = show n