George is a cat, so he really likes to play. Most of all he likes to play with his array of positive integers *b*. During the game, George modifies the array by using special changes. Let's mark George's current array as *b*<sub class="lower-index">1</sub>, *b*<sub class="lower-index">2</sub>, ..., *b*<sub class="lower-index">|*b*|</sub> (record |*b*| denotes the current length of the array). Then one change is a sequence of actions: 
 -  Choose two distinct indexes *i* and *j* (1 ≤ *i*, *j* ≤ |*b*|; *i* ≠ *j*), such that *b*<sub class="lower-index">*i*</sub> ≥ *b*<sub class="lower-index">*j*</sub>. -  Get number *v* = *concat*(*b*<sub class="lower-index">*i*</sub>, *b*<sub class="lower-index">*j*</sub>), where *concat*(*x*, *y*) is a number obtained by adding number *y* to the end of the decimal record of number *x*. For example, *concat*(500, 10) = 50010, *concat*(2, 2) = 22. -  Add number *v* to the end of the array. The length of the array will increase by one. -  Remove from the array numbers with indexes *i* and *j*. The length of the array will decrease by two, and elements of the array will become re-numbered from 1 to current length of the array. 
George played for a long time with his array *b* and received from array *b* an array consisting of exactly one number *p*. Now George wants to know: what is the maximum number of elements array *b* could contain originally? Help him find this number. Note that originally the array could contain only positive integers.
The first line of the input contains a single integer *p* (1 ≤ *p* &lt; 10<sup class="upper-index">100000</sup>). It is guaranteed that number *p* doesn't contain any leading zeroes.
def comp(first, second):
    if len(first) > len(second):
        return first
    elif len(first) < len(second):
        return second
    else:
        i = 0
        while i < len(first):
            if ord(first[i]) > ord(second[i]):
                return first
            elif ord(first[i]) < ord(second[i]):
                return second
            i += 1
    return first;
s = input()
i = 1
start = 0
b = list()
while i < len(s):
    while i < len(s) and ord(s[i]) == 48:
        i += 1
    b.append(s[start:i])
    start = i
    i += 1
if start < len(b):
    b.append(s[start:])

m = b[0]
for i in b:
    m = comp(m, i)

if b[0] == m:
   print(len(b))
else:
   i = 1
   z = b[0]
   while comp(m, z) == m:
        z += b[i]
        i += 1
   print(len(b)-i+1)