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 sys
import math
from sys import stdin, stdout
from itertools import permutations
 
# TAKE INPUT
def get_ints_in_variables():
    return map(int, sys.stdin.readline().strip().split())
def get_int(): return int(input())
def get_ints_in_list(): return list(
    map(int, sys.stdin.readline().strip().split()))
def get_list_of_list(n): return [list(
    map(int, sys.stdin.readline().strip().split())) for _ in range(n)]
def get_string(): return sys.stdin.readline().strip()
 
def main():
    # Write Your Code Here
    num = input()
    n = len(num)
    if n == 1:
        print(1)
        return
    else:
        count = 0
        newStr = ""
        for i in range(1, n+1):
            newStr += "1"
            tempStr = ""
            tempStr+= newStr
            for j in range(i+1, n+1):
                tempStr+="0"
            # tempStr.sort()
            tempStr = ''.join(sorted(tempStr))
            # if int(tempStr <= n):
            #     count += 1
            
            permutation = [''.join(p) for p in permutations(tempStr)]
            # print(permutation)
            start = 0
            end = len(permutation)
            while start < end:
                if int(permutation[start]) <= int(num):
                    count += 1
                start += 1
        
        print(count)
            

#  calling main Function
if __name__ == "__main__":
    main()