Algorithm


C. Hexadecimal's Numbers
time limit per test
1 second
memory limit per test
64 megabytes
input
standard input
output
standard output

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
Copy
10
output
Copy
2
Note

For n = 10 the answer includes numbers 1 and 10.



 

Code Examples

#1 Code Example with C++ Programming

Code - C++ Programming

#include <bits/stdc++.h>

using namespace std;

vector<long long> all;
void rec(long long sum, int idx) {
  if(idx == 10) {
    all.push_back(sum);
    return;
  }
  
  rec(sum, idx + 1);
  rec(sum * 10, idx + 1);
  rec(sum * 10 + 1, idx + 1);
}

int main() {
  rec(1, 0);
  sort(all.begin(), all.end());
  all.resize(unique(all.begin(), all.end()) - all.begin());
  
  int n, res = 0;
  scanf("%d", &n);
  for(int i = 0; i < (int)all.size(); ++i) {
    if(all[i] > n)
      break;
    ++res;
  }
  printf("%d\n", res);
  
  return 0;
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
10

Output

x
+
cmd
2
Advertisements

Demonstration


Codeforcess Solution C. Hexadecimal's Numbers C,C++, Java, Js and Python ,C. Hexadecimal's Numbers,Codeforcess Solution

Previous
Codeforces solution 1080-B-B. Margarite and the best present codeforces solution
Next
CodeChef solution DETSCORE - Determine the Score CodeChef solution C,C+