#include <bits/stdc++.h>
using namespace std;
stringstream ss;
string s;
long long n, i, j, x, y, len, zn, ans;
bool abcde;
long long f(long long a) {
  long long ans = 0;
  while (a > 0) {
    ans++;
    a /= 10;
  }
  return ans;
}
void dfs(long long x, long long y) {
  if (s.size() == len) {
    abcde = false;
    for (i = 0; i < len - 1; i++)
      if (s[i] != s[i + 1]) abcde = true;
    if (!abcde) return;
    if (s[0] == '0') return;
    ss.clear();
    ss << s;
    ss >> zn;
    if (zn <= n) ans++;
    return;
  }
  s += char(x + 48);
  dfs(x, y);
  s.erase(s.size() - 1, 1);
  s += char(y + 48);
  dfs(x, y);
  s.erase(s.size() - 1, 1);
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cin >> n;
  for (len = 1; len <= f(n); len++) {
    for (i = 1; i <= 9; i++) {
      s = "";
      for (j = 1; j <= len; j++) s += char(i + 48);
      ss.clear();
      ss << s;
      ss >> zn;
      if (zn <= n) ans++;
    }
    s = "";
    for (x = 0; x <= 9; x++)
      for (y = x + 1; y <= 9; y++) dfs(x, y);
  }
  cout << ans << '\n';
  return 0;
}
