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.
#include <bits/stdc++.h>
using namespace std;
int main() {
  {
    long long int i, j, k, y, n, x, m, a, b, ans = 0, sum = 0, cnt = 0;
    long long int c, mx = 0;
    string s, z, taj = "YES";
    cin >> n;
    long long int ara[n + 1], bra[n + 1];
    vector<long long int> vct;
    for (i = 1; i <= 1000; i++) {
      ans = i, sum = cnt = 0;
      while (ans) {
        sum += ((ans % 2) * pow(10, cnt++));
        ans /= 2;
      }
      vct.push_back(sum);
    }
    i = cnt = 0;
    while (vct[i++] <= n) cnt++;
    cout << cnt << endl;
  }
  return 0;
}
