fn main() { let mut xx = String::new(); std::io::Read::read_to_string(&mut std::io::stdin(), &mut xx).ok(); let mut xx: Vec = xx.split_whitespace().skip(1).flat_map(str::parse).collect(); for i in (0..xx.len().saturating_sub(3)).rev() { xx[i + 1] += std::mem::replace(&mut xx[i + 3], 0); } let i = xx.iter().rposition(|&n| n != 0).unwrap_or(0); let output: Vec = xx[..=i].iter().map(|&n| n.to_string()).collect(); println!("{i}"); println!("{}", output.join(" ")); }