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;
void shuru_krte_hai_bina_kisi_bakchodi_ke() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
}
const long long mod = 998244353;
long long binpow(long long a, long long b) {
  if (b == 0) return 1;
  long long res = binpow(a, b / 2);
  if (b % 2)
    return res * res * a;
  else
    return res * res;
}
long long n, ans = 0;
void calc(int a) {
  if (a > n) return;
  ans++;
  calc(10 * a);
  calc(10 * a + 1);
}
int main() {
  shuru_krte_hai_bina_kisi_bakchodi_ke();
  cin >> n;
  calc(1);
  cout << ans << "\n";
  return 0;
}
