import Data.Monoid (Sum, getSum) main = mapM_ putStrLn . map fizzbuzz . (\x -> [b..x]) =<< readLn where a = getSum mempty b = succ $ a c = succ . succ . succ $ a d = succ . succ . succ . succ . succ $ a fizzbuzz x | mod x (c * d) == a = "FizzBuzz" | mod x c == a = "Fizz" | mod x d == a = "Buzz" | otherwise = show x