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 java.util.*;

import java.io.*;
public class Main{
	static Scanner sc = new Scanner(System.in);

	static long getl() {
		return sc.nextLong();
	}
	
	static int geti() {
		return sc.nextInt();
	}
	
	static String gets() {
		return sc.next();
	}
	
	static int[] intArr(int n) {
		int[] arr = new int[n];
		for(int i=0;i<n;i++) arr[i] = geti();
		return arr;
	}
	
	static long[] longArr(int n) {
		long[] arr = new long[n];
		for(int i=0;i<n;i++) arr[i] = getl();
		return arr;
	}
   
	static void print(String s) {
		System.out.print(s);
	}
	
	static void plarr(long[] arr) {
		for(int i=0;i<arr.length;i++) print(arr[i] + " ");
	}
	
	static void piarr(int[] arr) {
		for(int i=0;i<arr.length;i++) print(arr[i] + " ");
	}
	
	static long gcdEuclid(long a,long b) {
		if(b==0) return a;
		else return gcdEuclid(b,a%b);
	}
	
	static long[] getBinaryArr() {
	    final int MAX = 1200;
		long[] arr = new long[MAX];
		int ind = 0;
		long t = 1;
		while(ind<MAX){
		    String s = Long.toBinaryString(t);
		    arr[ind++] = Long.parseLong(s);
		    t++;
		}
		return arr;
	}
		
		
    public static void main(String args[]){
        long nn = getl();
        long[] arr = getBinaryArr();
        int i = 0;
        while(arr[i]<=nn)i++;
        print(i + "\n");
        
    }
}

