import Control.Applicative main = do ans <- map show . g . foldr f [0,0,0] . map read . drop 1 . words <$> getContents print $ (length ans) - 1 putStrLn $ unwords $ ans where f i [a,b,c] = [i,a+c,b] g [a,0,0] = [a] g [a,b,0] = [a,b] g [a,b,c] = [a,b,c]