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.Scanner;

public class CHexadecimalSNumbers {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt() , cnt = 0;
        int k = 1 , k2 = 1;
        while(k2 <= n)
        {
            k++;
            int g = k;
            String a = "";
            while(g > 0)
            {
                a += (g%2);
                g /= 2;
            }
            String h = "";
            for(int i = a.length()-1; i >= 0; i--)
                h += a.charAt(i);
            k2 = Integer.parseInt(h);
            cnt++;
        }
        System.out.println(cnt);
    }
}