use std::io::*; fn main() { let mut s: String = String::new(); std::io::stdin().read_to_string(&mut s).ok(); let mut itr = s.trim().split_whitespace(); let n: usize = itr.next().unwrap().parse().unwrap(); let mut a: Vec = (0..n + 1) .map(|_| itr.next().unwrap().parse().unwrap()) .collect(); for i in (3..n + 1).rev() { a[i - 2] += a[i]; a[i] = 0; } let mut b = Vec::new(); for i in 0..n + 1 { if a[i] == 0 { break; } b.push(a[i]); } if b.len() == 0 { println!("0"); println!("0"); return; } let mut out = Vec::new(); writeln!(out, "{}", b.len() - 1).ok(); for i in 0..b.len() { if i == b.len() - 1 { writeln!(out, "{}", b[i]).ok(); } else { write!(out, "{} ", b[i]).ok(); } } stdout().write_all(&out).unwrap(); }