#include <bits/stdc++.h>
using namespace std;
int v[1200] = {
    0,   4672, 568, 568, 568, 568, 568, 568, 568, 568, 568, 64,  567, 64,  64,
    64,  64,   64,  64,  64,  65,  63,  65,  567, 64,  64,  64,  64,  64,  64,
    65,  63,   64,  65,  567, 64,  64,  64,  64,  64,  65,  63,  64,  64,  65,
    567, 64,   64,  64,  64,  65,  63,  64,  64,  64,  65,  567, 64,  64,  64,
    65,  63,   64,  64,  64,  64,  65,  567, 64,  64,  65,  63,  64,  64,  64,
    64,  64,   65,  567, 64,  65,  63,  64,  64,  64,  64,  64,  64,  65,  567,
    65,  63,   64,  64,  64,  64,  64,  64,  64,  65,  568, 64,  63,  0,   0,
    0,   0,    0,   0,   0,   1,   64,  567, 64,  64,  64,  64,  64,  64,  64,
    64,  0,    64,  64,  0,   0,   0,   0,   0,   0,   0,   0,   64,  0,   64,
    0,   0,    0,   0,   0,   0,   0,   64,  0,   0,   64,  0,   0,   0,   0,
    0,   0,    64,  0,   0,   0,   64,  0,   0,   0,   0,   0,   64,  0,   0,
    0,   0,    64,  0,   0,   0,   0,   64,  0,   0,   0,   0,   0,   64,  0,
    0,   0,    64,  0,   0,   0,   0,   0,   0,   64,  0,   0,   64,  0,   0,
    0,   0,    0,   0,   0,   65,  63,  1,   63,  0,   0,   0,   0,   0,   0,
    0,   0,    64,  64,  0,   0,   0,   0,   0,   0,   1,   63,  65,  567, 64,
    64,  64,   64,  64,  64,  64,  0,   0,   64,  64,  0,   0,   0,   0,   0,
    0,   0,    0,   64,  0,   64,  0,   0,   0,   0,   0,   0,   0,   64,  0,
    0,   64,   0,   0,   0,   0,   0,   0,   64,  0,   0,   0,   64,  0,   0,
    0,   0,    0,   64,  0,   0,   0,   0,   64,  0,   0,   0,   0,   64,  0,
    0,   0,    0,   0,   64,  0,   0,   0,   64,  0,   0,   0,   0,   0,   0,
    65,  63,   0,   1,   63,  0,   0,   0,   0,   0,   0,   0,   64,  0,   64,
    0,   0,    0,   0,   0,   0,   0,   0,   64,  64,  0,   0,   0,   0,   0,
    1,   63,   64,  65,  567, 64,  64,  64,  64,  64,  64,  0,   0,   0,   64,
    64,  0,    0,   0,   0,   0,   0,   0,   0,   64,  0,   64,  0,   0,   0,
    0,   0,    0,   0,   64,  0,   0,   64,  0,   0,   0,   0,   0,   0,   64,
    0,   0,    0,   64,  0,   0,   0,   0,   0,   64,  0,   0,   0,   0,   64,
    0,   0,    0,   0,   64,  0,   0,   0,   0,   0,   65,  63,  0,   0,   1,
    63,  0,    0,   0,   0,   0,   0,   64,  0,   0,   64,  0,   0,   0,   0,
    0,   0,    0,   64,  0,   64,  0,   0,   0,   0,   0,   0,   0,   0,   64,
    64,  0,    0,   0,   0,   1,   63,  64,  64,  65,  567, 64,  64,  64,  64,
    64,  0,    0,   0,   0,   64,  64,  0,   0,   0,   0,   0,   0,   0,   0,
    64,  0,    64,  0,   0,   0,   0,   0,   0,   0,   64,  0,   0,   64,  0,
    0,   0,    0,   0,   0,   64,  0,   0,   0,   64,  0,   0,   0,   0,   0,
    64,  0,    0,   0,   0,   65,  63,  0,   0,   0,   1,   63,  0,   0,   0,
    0,   0,    64,  0,   0,   0,   64,  0,   0,   0,   0,   0,   0,   64,  0,
    0,   64,   0,   0,   0,   0,   0,   0,   0,   64,  0,   64,  0,   0,   0,
    0,   0,    0,   0,   0,   64,  64,  0,   0,   0,   1,   63,  64,  64,  64,
    65,  567,  64,  64,  64,  64,  0,   0,   0,   0,   0,   64,  64,  0,   0,
    0,   0,    0,   0,   0,   0,   64,  0,   64,  0,   0,   0,   0,   0,   0,
    0,   64,   0,   0,   64,  0,   0,   0,   0,   0,   0,   64,  0,   0,   0,
    65,  63,   0,   0,   0,   0,   1,   63,  0,   0,   0,   0,   64,  0,   0,
    0,   0,    64,  0,   0,   0,   0,   0,   64,  0,   0,   0,   64,  0,   0,
    0,   0,    0,   0,   64,  0,   0,   64,  0,   0,   0,   0,   0,   0,   0,
    64,  0,    64,  0,   0,   0,   0,   0,   0,   0,   0,   64,  64,  0,   0,
    1,   63,   64,  64,  64,  64,  65,  567, 64,  64,  64,  0,   0,   0,   0,
    0,   0,    64,  64,  0,   0,   0,   0,   0,   0,   0,   0,   64,  0,   64,
    0,   0,    0,   0,   0,   0,   0,   64,  0,   0,   65,  63,  0,   0,   0,
    0,   0,    1,   63,  0,   0,   0,   64,  0,   0,   0,   0,   0,   64,  0,
    0,   0,    0,   64,  0,   0,   0,   0,   64,  0,   0,   0,   0,   0,   64,
    0,   0,    0,   64,  0,   0,   0,   0,   0,   0,   64,  0,   0,   64,  0,
    0,   0,    0,   0,   0,   0,   64,  0,   64,  0,   0,   0,   0,   0,   0,
    0,   0,    64,  64,  0,   1,   63,  64,  64,  64,  64,  64,  65,  567, 64,
    64,  0,    0,   0,   0,   0,   0,   0,   64,  64,  0,   0,   0,   0,   0,
    0,   0,    0,   64,  0,   65,  63,  0,   0,   0,   0,   0,   0,   1,   63,
    0,   0,    64,  0,   0,   0,   0,   0,   0,   64,  0,   0,   0,   64,  0,
    0,   0,    0,   0,   64,  0,   0,   0,   0,   64,  0,   0,   0,   0,   64,
    0,   0,    0,   0,   0,   64,  0,   0,   0,   64,  0,   0,   0,   0,   0,
    0,   64,   0,   0,   64,  0,   0,   0,   0,   0,   0,   0,   64,  0,   64,
    0,   0,    0,   0,   0,   0,   0,   0,   64,  64,  1,   63,  64,  64,  64,
    64,  64,   64,  65,  567, 64,  0,   0,   0,   0,   0,   0,   0,   0,   64,
    65,  63,   0,   0,   0,   0,   0,   0,   0,   1,   63,  0,   64,  0,   0,
    0,   0,    0,   0,   0,   64,  0,   0,   64,  0,   0,   0,   0,   0,   0,
    64,  0,    0,   0,   64,  0,   0,   0,   0,   0,   64,  0,   0,   0,   0,
    64,  0,    0,   0,   0,   64,  0,   0,   0,   0,   0,   64,  0,   0,   0,
    64,  0,    0,   0,   0,   0,   0,   64,  0,   0,   64,  0,   0,   0,   0,
    0,   0,    0,   64,  0,   64,  0,   0,   0,   0,   0,   0,   0,   0,   64,
    65,  63,   64,  64,  64,  64,  64,  64,  64,  65,  568};
int n, sol;
bool ok(int nr) {
  int ap = -1, ap2 = -1;
  while (nr) {
    int last = nr % 10;
    nr /= 10;
    if (ap == -1 || last == ap) {
      ap = last;
      continue;
    }
    if (ap2 == -1 || last == ap2) {
      ap2 = last;
      continue;
    }
    return false;
  }
  return true;
}
int main() {
  cin >> n;
  for (int i = 1; i <= 1005; i++) v[i] += v[i - 1];
  sol = v[n / 1000000];
  for (int i = (n / 1000000) * 1000000 + 1; i <= n; i++) {
    if (ok(i)) sol++;
  }
  cout << sol;
  return 0;
}

### Prompt

Create a solution in cpp for the following problem:

Polycarpus loves lucky numbers. Everybody knows that lucky numbers are positive integers, whose decimal representation (without leading zeroes) contain only the lucky digits x and y. For example, if x = 4, and y = 7, then numbers 47, 744, 4 are lucky.

Let's call a positive integer a undoubtedly lucky, if there are such digits x and y (0 ≤ x, y ≤ 9), that the decimal representation of number a (without leading zeroes) contains only digits x and y.

Polycarpus has integer n. He wants to know how many positive integers that do not exceed n, are undoubtedly lucky. Help him, count this number.

Input

The first line contains a single integer n (1 ≤ n ≤ 109) — Polycarpus's number.

Output

Print a single integer that says, how many positive integers that do not exceed n are undoubtedly lucky.

Examples

Input

10


Output

10


Input

123


Output

113

Note

In the first test sample all numbers that do not exceed 10 are undoubtedly lucky.

In the second sample numbers 102, 103, 104, 105, 106, 107, 108, 109, 120, 123 are not undoubtedly lucky.

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
int v[1200] = {
    0,   4672, 568, 568, 568, 568, 568, 568, 568, 568, 568, 64,  567, 64,  64,
    64,  64,   64,  64,  64,  65,  63,  65,  567, 64,  64,  64,  64,  64,  64,
    65,  63,   64,  65,  567, 64,  64,  64,  64,  64,  65,  63,  64,  64,  65,
    567, 64,   64,  64,  64,  65,  63,  64,  64,  64,  65,  567, 64,  64,  64,
    65,  63,   64,  64,  64,  64,  65,  567, 64,  64,  65,  63,  64,  64,  64,
    64,  64,   65,  567, 64,  65,  63,  64,  64,  64,  64,  64,  64,  65,  567,
    65,  63,   64,  64,  64,  64,  64,  64,  64,  65,  568, 64,  63,  0,   0,
    0,   0,    0,   0,   0,   1,   64,  567, 64,  64,  64,  64,  64,  64,  64,
    64,  0,    64,  64,  0,   0,   0,   0,   0,   0,   0,   0,   64,  0,   64,
    0,   0,    0,   0,   0,   0,   0,   64,  0,   0,   64,  0,   0,   0,   0,
    0,   0,    64,  0,   0,   0,   64,  0,   0,   0,   0,   0,   64,  0,   0,
    0,   0,    64,  0,   0,   0,   0,   64,  0,   0,   0,   0,   0,   64,  0,
    0,   0,    64,  0,   0,   0,   0,   0,   0,   64,  0,   0,   64,  0,   0,
    0,   0,    0,   0,   0,   65,  63,  1,   63,  0,   0,   0,   0,   0,   0,
    0,   0,    64,  64,  0,   0,   0,   0,   0,   0,   1,   63,  65,  567, 64,
    64,  64,   64,  64,  64,  64,  0,   0,   64,  64,  0,   0,   0,   0,   0,
    0,   0,    0,   64,  0,   64,  0,   0,   0,   0,   0,   0,   0,   64,  0,
    0,   64,   0,   0,   0,   0,   0,   0,   64,  0,   0,   0,   64,  0,   0,
    0,   0,    0,   64,  0,   0,   0,   0,   64,  0,   0,   0,   0,   64,  0,
    0,   0,    0,   0,   64,  0,   0,   0,   64,  0,   0,   0,   0,   0,   0,
    65,  63,   0,   1,   63,  0,   0,   0,   0,   0,   0,   0,   64,  0,   64,
    0,   0,    0,   0,   0,   0,   0,   0,   64,  64,  0,   0,   0,   0,   0,
    1,   63,   64,  65,  567, 64,  64,  64,  64,  64,  64,  0,   0,   0,   64,
    64,  0,    0,   0,   0,   0,   0,   0,   0,   64,  0,   64,  0,   0,   0,
    0,   0,    0,   0,   64,  0,   0,   64,  0,   0,   0,   0,   0,   0,   64,
    0,   0,    0,   64,  0,   0,   0,   0,   0,   64,  0,   0,   0,   0,   64,
    0,   0,    0,   0,   64,  0,   0,   0,   0,   0,   65,  63,  0,   0,   1,
    63,  0,    0,   0,   0,   0,   0,   64,  0,   0,   64,  0,   0,   0,   0,
    0,   0,    0,   64,  0,   64,  0,   0,   0,   0,   0,   0,   0,   0,   64,
    64,  0,    0,   0,   0,   1,   63,  64,  64,  65,  567, 64,  64,  64,  64,
    64,  0,    0,   0,   0,   64,  64,  0,   0,   0,   0,   0,   0,   0,   0,
    64,  0,    64,  0,   0,   0,   0,   0,   0,   0,   64,  0,   0,   64,  0,
    0,   0,    0,   0,   0,   64,  0,   0,   0,   64,  0,   0,   0,   0,   0,
    64,  0,    0,   0,   0,   65,  63,  0,   0,   0,   1,   63,  0,   0,   0,
    0,   0,    64,  0,   0,   0,   64,  0,   0,   0,   0,   0,   0,   64,  0,
    0,   64,   0,   0,   0,   0,   0,   0,   0,   64,  0,   64,  0,   0,   0,
    0,   0,    0,   0,   0,   64,  64,  0,   0,   0,   1,   63,  64,  64,  64,
    65,  567,  64,  64,  64,  64,  0,   0,   0,   0,   0,   64,  64,  0,   0,
    0,   0,    0,   0,   0,   0,   64,  0,   64,  0,   0,   0,   0,   0,   0,
    0,   64,   0,   0,   64,  0,   0,   0,   0,   0,   0,   64,  0,   0,   0,
    65,  63,   0,   0,   0,   0,   1,   63,  0,   0,   0,   0,   64,  0,   0,
    0,   0,    64,  0,   0,   0,   0,   0,   64,  0,   0,   0,   64,  0,   0,
    0,   0,    0,   0,   64,  0,   0,   64,  0,   0,   0,   0,   0,   0,   0,
    64,  0,    64,  0,   0,   0,   0,   0,   0,   0,   0,   64,  64,  0,   0,
    1,   63,   64,  64,  64,  64,  65,  567, 64,  64,  64,  0,   0,   0,   0,
    0,   0,    64,  64,  0,   0,   0,   0,   0,   0,   0,   0,   64,  0,   64,
    0,   0,    0,   0,   0,   0,   0,   64,  0,   0,   65,  63,  0,   0,   0,
    0,   0,    1,   63,  0,   0,   0,   64,  0,   0,   0,   0,   0,   64,  0,
    0,   0,    0,   64,  0,   0,   0,   0,   64,  0,   0,   0,   0,   0,   64,
    0,   0,    0,   64,  0,   0,   0,   0,   0,   0,   64,  0,   0,   64,  0,
    0,   0,    0,   0,   0,   0,   64,  0,   64,  0,   0,   0,   0,   0,   0,
    0,   0,    64,  64,  0,   1,   63,  64,  64,  64,  64,  64,  65,  567, 64,
    64,  0,    0,   0,   0,   0,   0,   0,   64,  64,  0,   0,   0,   0,   0,
    0,   0,    0,   64,  0,   65,  63,  0,   0,   0,   0,   0,   0,   1,   63,
    0,   0,    64,  0,   0,   0,   0,   0,   0,   64,  0,   0,   0,   64,  0,
    0,   0,    0,   0,   64,  0,   0,   0,   0,   64,  0,   0,   0,   0,   64,
    0,   0,    0,   0,   0,   64,  0,   0,   0,   64,  0,   0,   0,   0,   0,
    0,   64,   0,   0,   64,  0,   0,   0,   0,   0,   0,   0,   64,  0,   64,
    0,   0,    0,   0,   0,   0,   0,   0,   64,  64,  1,   63,  64,  64,  64,
    64,  64,   64,  65,  567, 64,  0,   0,   0,   0,   0,   0,   0,   0,   64,
    65,  63,   0,   0,   0,   0,   0,   0,   0,   1,   63,  0,   64,  0,   0,
    0,   0,    0,   0,   0,   64,  0,   0,   64,  0,   0,   0,   0,   0,   0,
    64,  0,    0,   0,   64,  0,   0,   0,   0,   0,   64,  0,   0,   0,   0,
    64,  0,    0,   0,   0,   64,  0,   0,   0,   0,   0,   64,  0,   0,   0,
    64,  0,    0,   0,   0,   0,   0,   64,  0,   0,   64,  0,   0,   0,   0,
    0,   0,    0,   64,  0,   64,  0,   0,   0,   0,   0,   0,   0,   0,   64,
    65,  63,   64,  64,  64,  64,  64,  64,  64,  65,  568};
int n, sol;
bool ok(int nr) {
  int ap = -1, ap2 = -1;
  while (nr) {
    int last = nr % 10;
    nr /= 10;
    if (ap == -1 || last == ap) {
      ap = last;
      continue;
    }
    if (ap2 == -1 || last == ap2) {
      ap2 = last;
      continue;
    }
    return false;
  }
  return true;
}
int main() {
  cin >> n;
  for (int i = 1; i <= 1005; i++) v[i] += v[i - 1];
  sol = v[n / 1000000];
  for (int i = (n / 1000000) * 1000000 + 1; i <= n; i++) {
    if (ok(i)) sol++;
  }
  cout << sol;
  return 0;
}

```