#include <bits/stdc++.h>
using namespace std;
int arr[100000], size;
set<long long> s;
set<long long>::iterator it;
void dfs(long long n, long long v, long long x, long long y) {
  if (v) s.insert(v);
  if (v * 10 + x <= n && v * 10 + x > 0) dfs(n, v * 10 + x, x, y);
  if (v * 10 + y <= n && v * 10 + y > 0) dfs(n, v * 10 + y, x, y);
}
int main() {
  long long i, j, n;
  size = 0;
  scanf("%I64d", &n);
  for (i = 0; i < 10; i++) {
    for (j = i + 1; j < 10; j++) {
      dfs(n, 0, i, j);
    }
  }
  printf("%d\n", (int)s.size());
  return 0;
}
