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
x=input("saisir un entier ")
tab=list(x)
entry=int(x)
aid=str()
if entry==0 :
  print("0");

elif entry<=9 :
  print("2")
for i in range(len(tab)) :
   tab[i]=int(tab[i])
if 1<tab[0]:
     x=(2**len(tab))-1

elif tab[0]==1:
    if 1<tab[1]:
          x=(2**len(tab))-1
    else:
          x=(2**(len(tab)-1))-1
          A=list()
          a=str()
          for i in range(len(tab)) :
               if i == 0 :
                A.append(1)
                a=str(A[i])
               else :
                A.append(0)
                a=a+str(A[i])

          number=int(a)
          b=str(number)
          b=int(b,2)

          while number<=entry :
             x=x+1
             alter=int(bin(b),2)+int(bin(1),2)
             help=bin(alter)
             aid=help[2:]

             s=str(aid)

             number=int(s)
             b=str(number)
             b=int(b,2)

print(x)
