module Main where main :: IO () main = do _ <- getLine a <- getIntList mapM_ putStrLn $ solve a solve :: [Int] -> [String] solve a = fmt . dropWhile (==0) . loop $ reverse a loop xs@[x, y, z] = xs loop (x:y:z:xs) = loop (y:z+x:xs) loop xs = xs fmt :: [Int] -> [String] fmt [] = ["0", "0"] fmt ns = map ($ ns) [f1, f2] where f1 = show . pred . length f2 = unwords . reverse . map show getIntList :: IO [Int] getIntList = map read . words <$> getLine