Takahashi has an empty string S and a variable x whose initial value is 0.

Also, we have a string T consisting of `0` and `1`.

Now, Takahashi will do the operation with the following two steps |T| times.

* Insert a `0` or a `1` at any position of S of his choice.
* Then, increment x by the sum of the digits in the odd positions (first, third, fifth, ...) of S. For example, if S is `01101`, the digits in the odd positions are `0`, `1`, `1` from left to right, so x is incremented by 2.



Print the maximum possible final value of x in a sequence of operations such that S equals T in the end.

Constraints

* 1 \leq |T| \leq 2 \times 10^5
* T consists of `0` and `1`.

Input

Input is given from Standard Input in the following format:


T


Output

Print the maximum possible final value of x in a sequence of operations such that S equals T in the end.

Examples

Input

1101


Output

5


Input

0111101101


Output

26
t = input()

before_and_max = [[0, 0, 0] for i in range(len(t))]

for i in range(len(t)):
    if i == 0:
        if t[0] == "0":
            before_and_max[0][0] = 0
            before_and_max[0][1] = 0
            before_and_max[0][2] = 0
        else:
            before_and_max[0][0] = 1
            before_and_max[0][1] = 1
            before_and_max[0][2] = 0
    else:
        if t[i] == "0":
            before_and_max[i][0] = before_and_max[i - 1][0] + max(before_and_max[i-1][1], before_and_max[i-1][2])
            before_and_max[i][1] = max(before_and_max[i-1][1], before_and_max[i-1][2])
            before_and_max[i][2] = max(before_and_max[i-1][1], before_and_max[i-1][2])
        else:
            before_and_max[i][0] = before_and_max[i - 1][0] + ((i + 1) // 2 + (i + 1) % 2)
            before_and_max[i][1] = before_and_max[i - 1][2] + 1
            before_and_max[i][2] = before_and_max[i - 1][1]

print(before_and_max[len(t) - 1][0])
