from collections import defaultdict,deque import sys,heapq,bisect,math,itertools,string,queue,copy,time sys.setrecursionlimit(10**8) INF = float('inf') mod = 10**9+7 eps = 10**-7 def inp(): return int(sys.stdin.readline()) def inpl(): return list(map(int, sys.stdin.readline().split())) def inpl_str(): return list(sys.stdin.readline().split()) N = input() + '000' ans = 0 tmp0 = 0 cnt0 = 0 cnt1 = 0 for sn in N: n = int(sn) #print(cnt0,cnt1,tmp0) if cnt0 == 0: if n == 1: cnt1 += 1 else: tmp0 += 1 cnt0 += 1 elif cnt0 == 1: if n == 1: cnt0 = 0 cnt1 += 1 else: tmp0 += 1 cnt0 += 1 elif cnt0 == 2: ans += min(tmp0,cnt1) tmp0 = 0 cnt0 += 1 cnt1 = 0 if cnt0 >= 3: if n == 1: cnt0 = 0 cnt1 += 1 print(ans)