module Main where
tList = cycle [0, 0, 1]
fList = cycle [0, 0, 0, 0, 1]
main = putStrLn $ unlines $ fizzbuzz [1..100] tList fList
fizzbuzz [] _ _ = []
fizzbuzz (x:xs) (0:ts) (0:fs) = show x : fizzbuzz xs ts fs
fizzbuzz (x:xs) (1:ts) (0:fs) = "fizz" : fizzbuzz xs ts fs
fizzbuzz (x:xs) (0:ts) (1:fs) = "buzz" : fizzbuzz xs ts fs
fizzbuzz (x:xs) (1:ts) (1:fs) = "fizzbuzz" : fizzbuzz xs ts fs