fn main() { let mut n = String::new(); std::io::stdin().read_line(&mut n).ok(); let mut n = n.trim().chars().map(|c| c as usize - '0' as usize).collect::>(); let limit = n.len(); let mut result = 0usize; let mut addval = 0usize; for i in 0..limit { if addval == 1 && n[i] == 1 { n[i] = 0; } else { n[i] = (n[i] + addval) % 2; addval = 0; } if i+1 < limit && n[i] == 1 && n[i+1] == 1 { result += 1; addval = 1; n[i] = 0; } else if n[i] == 1 { result += 1; n[i] = 0; } } println!("{}", result + addval); }