f :: Int -> [Int] -> [Int]f a (1:xs) = a : f (3-a) xsf a (2:xs) = a : a : f (3-a) xsx :: [Int]x = 2 : (f 1 x)main = print (1 : 2 : x)