#include <bits/stdc++.h>
using namespace std;
long long n, i, j, x, res;
map<long long, bool> q;
void rec(long long x, int k, int y, int z) {
  q[x] = true;
  res++;
  if (k == 1) {
    for (int i = 0; i <= 9; i++) {
      if (x * 10 + i <= n && !q[x * 10 + i]) {
        if (i == y) {
          rec(x * 10 + i, 1, y, -1);
        } else {
          rec(x * 10 + i, 2, y, i);
        }
      }
    }
  } else {
    if (x * 10 + y <= n && !q[x * 10 + y]) {
      rec(x * 10 + y, 2, y, z);
    }
    if (x * 10 + z <= n && !q[x * 10 + z]) {
      rec(x * 10 + z, 2, y, z);
    }
  }
}
int main() {
  cin >> n;
  if (n <= 100) {
    cout << n;
    return 0;
  }
  for (i = 10; i <= 99; i++) {
    if (i / 10 == i % 10) {
      rec(i, 1, i % 10, -1);
    } else {
      rec(i, 2, i / 10, i % 10);
    }
  }
  cout << res + 9;
  return 0;
}
