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 P9C {

  private static void solve() {
    int num = nextInt();
    int n = String.valueOf(num).length();
    Set<Integer> ans = new HashSet<>();
    for (int i = 0; i < (1 << n); i++) {
      int[] x = new int[n];
      for (int j = 0; j < n; j++) {
        if ((i & (1 << j)) != 0) {
          x[j] = 1;
        } else {
          x[j] = 0;
        }
      }

      int ne = 0;
      for (int j = 0; j < n; j++) {
        ne *= 10;
        ne += x[j];
      }

      if (ne <= num) {
        ans.add(ne);
      }
    }

    System.out.println(ans.size() - 1);
  }

  private static void run() {
    br = new BufferedReader(new InputStreamReader(System.in));
    out = new PrintWriter(System.out);

    solve();

    out.close();
  }

  private static StringTokenizer st;
  private static BufferedReader br;
  private static PrintWriter out;

  private static String next() {
    while (st == null || !st.hasMoreElements()) {
      String s;
      try {
        s = br.readLine();
      } catch (IOException e) {
        return null;
      }
      st = new StringTokenizer(s);
    }
    return st.nextToken();
  }

  private static int nextInt() {
    return Integer.parseInt(next());
  }

  private static long nextLong() {
    return Long.parseLong(next());
  }

  public static void main(String[] args) {
    run();
  }

  private static void verify(int num) {

  }
}