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.
'''
Jana Goodman6

9c  Hexadecimal's Numbers

'''
import math
ONE_TWO = {'0','1'}
TWO_THRU_NINE = {str(_) for _ in range(2, 10)}

def bin_to_10(s):
    return int(s, 2)

def all_dig(d, n):
    return d * n

def trailing_1s(s):
    for i in range(1, len(s)):
        if s[i] not in {'0','1'}:
            return s[0:i] + all_dig('1', len(s) - i)

def successful(n):
    s = str(n)
    m = len(s)
    all1s = all_dig('1', m)
    all9s = all_dig('9', m)
    if all1s <= s <= all9s:
        return bin_to_10(all1s)
    if all(_ in ONE_TWO for _ in s):
        return bin_to_10(s)
    return bin_to_10(trailing_1s(s))


if __name__ == '__main__':
    print(successful(int(input().strip())))
