One beautiful July morning a terrible thing happened in Mainframe: a mean virus Megabyte somehow got access to the memory of his not less mean sister Hexadecimal. He loaded there a huge amount of n different natural numbers from 1 to n to obtain total control over her energy.

But his plan failed. The reason for this was very simple: Hexadecimal didn't perceive any information, apart from numbers written in binary format. This means that if a number in a decimal representation contained characters apart from 0 and 1, it was not stored in the memory. Now Megabyte wants to know, how many numbers were loaded successfully.

Input

Input data contains the only number n (1 ≤ n ≤ 109).

Output

Output the only number — answer to the problem.

Examples

Input

10


Output

2

Note

For n = 10 the answer includes numbers 1 and 10.
# import sys

# sys.stdin = open('input.txt', 'r')
# sys.stdout = open('output.txt', 'w')

t = 1
# t = int(input())

while t:
    t -= 1

    n = int(input())
    # a = list(map(int, input().split()))
    # b = list(map(int, input().split()))
    # s = input()
    n = list(str(n))
    var = 0
    for i in range(len(n)):
        n[i] = int(n[i])
        if n[i] > 1:
            var = 1
        n[i] = min(1, n[i]+var)
    coeff = 1
    ans = 0
    for el in reversed(n):
        ans += coeff*el
        coeff *= 2
    
    print(ans)
    