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 data contains the only number *n* (1 ≤ *n* ≤ 10<sup class="upper-index">9</sup>).
For *n* = 10 the answer includes numbers 1 and 10.
10
2
20
3
72
3
99
3
100
4
101
5
102
5
111
7
112
7
745
7
23536
31
1
1
1010011
83
312410141
511
1000000000
512
999999999
511
111111111
511
101010101
341
121212121
511
106341103
383
901556123
511
832513432
511
3
1
732875234
511
7
1
9
1
2
1
11
3
12
3
13
3
101020101
351
111100100
484
110110101
437
100111001
313
100100
36
110100102
421
import math
import string

def make_number(l):
    return int("".join([str(i) for i in l]))


def count_recursively(number, colector, target_number, h):
    if number.isalnum() and (int(number) > target_number or len(number) > len(str(target_number))):
        return
    else:
        if number.isalnum() and int(number) <= target_number and int(number) not in h:
            colector.append(1)
            h[int(number)] = 1
            #print(number)
        count_recursively("0" + number, colector, target_number, h)
        count_recursively("1" + number, colector, target_number, h)








def main_function():
    n = input()
    if int(n) == 1:
        print(1)
    else:
        s = []
        for i in range(len(n)):
            if int(n[i]) > 1:
                for j in range(i, len(n)):
                    s.append(1)
                break
            elif int(n[i]) == 1:
                s.append(1)
            else:
                s.append(0)
        counter = 0
        for i in range(1, len(s) + 1):
            if i != len(s):
                counter += 2 ** (i - 1)
        targ = make_number(s[1:])
        col = []
        numb = ""
        hash = {}
        count_recursively(numb, col,targ, hash)
        print(counter + len(col))




main_function()