fn main() { let mut d = String::new(); std::io::stdin().read_line(&mut d).ok(); let mut a = String::new(); std::io::stdin().read_line(&mut a).ok(); let mut a: Vec = a.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); while a.len() > 3 { let val: isize = a.pop().unwrap(); let pos = a.len()-2; a[pos] += val; } if a.len() == 3 && a[2] == 0 { a.pop(); if a[1] == 0 { a.pop(); } } println!("{}", a.len() - 1); println!("{}", a.iter().map(|i| i.to_string()).collect::>().join(" ")); }