
data = [int(j) for j in input().strip()]

b = len(data)

end = [1]*b

memo = dict()

def find(phase, maks):
    if phase == end:
        return 0
    if (tuple(phase), maks) in memo:
        return memo[tuple(phase), maks]
    best = 100
    enk = phase.count(1)
    for k in range(1, maks + 1):
        new = [e for e in phase]
        for i in range(len(new)-k):
            if phase[i] == 1:
                new[i+k] = 1
        if new.count(1) > enk:
            best = min(best, find(new, k))
    sol = best + 1
    memo[tuple(phase), maks] = sol
    return sol

if data[0] == 0:
    print(-1)
else:
    print(find(data, b))
