using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); public static void Main() { Solve(); } static void Solve() { var n = ReadLine(); WriteLine(Eat(n)); } static int Eat(string n) { var last = '+'; var count = 0; var list = new List<(char c, int count)>(); for (var i = 0; i < n.Length; ++i) { if (n[i] == last) { ++count; } else { if (count > 0) list.Add((last, count)); last = n[i]; count = 1; } if (i + 1 == n.Length) { list.Add((last, count)); } } var ans = 0; for (var i = list.Count - 1; i >= 0; --i) { if (list[i].c == '1') { if (list[i].count == 1) { ++ans; } else if (i > 1 && list[i - 1].count == 1) { ++ans; list[i - 2] = (list[i - 2].c, list[i - 2].count + 1); } else { ans += 2; } } } return ans; } }