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

elif entry<=9 :
  print("1")
elif 9<entry :
 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)
