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.
n = int(input())
nums = -1
for a in ['0','1']:
  for b in ['0','1']:
    for c in ['0','1']:
      for d in ['0','1']:
        for e in ['0','1']:
          for f in ['0','1']:
            for g in ['0','1']:
              for h in ['0','1']:
                for i in ['0','1']:
                  for j in ['0','1']:
                    s = a + b + c + d + e + f + g + h + i + j
                    if int(s) <= n:
                        nums += 1
print(nums)