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.
# import sys
# sys.stdin = open("F:\\Scripts\\input","r")
# sys.stdout = open("F:\\Scripts\\output","w")

MOD = 10**9 + 7
I = lambda:list(map(int,input().split()))

n, = I()
k = len(str(n)) - 1
ans = 2**k - 1
s = str(n)
count = 0
if int(s[0]) > 1:
	count = k
else:
	for i in range(1,k+1):
		if int(s[i]) > 1:
			count += k - i + 1
			break
		elif int(s[i]) == 1:
			ans += 2**(k - i)
			
print(ans + 2**count)
