#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3fffffff;
const int SINF = 0x7fffffff;
const long long LINF = 0x3fffffffffffffff;
const long long SLINF = 0x7fffffffffffffff;
const int MAXN = 23;
const int BASE = 10;
int n = 18;
long long l, r;
bool have18;
int al[MAXN], ar[MAXN];
int cc[BASE];
int ans = 0;
void init();
void input();
void work();
void srch(int now, int lft);
bool check(int nl, bool fl, bool fr);
int main() {
  init();
  input();
  work();
}
void init() { ios::sync_with_stdio(false); }
void input() { cin >> l >> r; }
void work() {
  if (r == static_cast<long long>(1e18)) {
    have18 = true;
    --r;
    if (l == static_cast<long long>(1e18)) {
      cout << 1 << endl;
      return;
    }
  }
  for (int i = 0; i < n; ++i) {
    al[i] = l % 10, ar[i] = r % 10;
    l /= 10, r /= 10;
  }
  ans = 0;
  srch(0, n);
  cout << ans << endl;
}
void srch(int now, int lft) {
  if (now == BASE) {
    if (lft) return;
    ans += check(n - 1, false, false);
    return;
  }
  for (int i = 0; i <= lft; ++i) {
    cc[now] = i;
    srch(now + 1, lft - i);
  }
}
bool check(int nl, bool fl, bool fr) {
  if (nl < 0) return true;
  if (nl == n - 1 && have18 && cc[1] == 1) {
    int cn0 = 0;
    for (int i = 0; i < BASE; ++i)
      if (cc[i]) ++cn0;
    if (cn0 == 1) return true;
  }
  int cl = al[nl], cr = ar[nl];
  bool ans = false;
  if (fr) {
    for (int i = cl + 1; i < BASE; ++i)
      if (cc[i]) return true;
    if (cc[cl]) {
      --cc[cl];
      ans = check(nl - 1, false, true);
      ++cc[cl];
    }
  } else if (fl) {
    for (int i = 0; i < cr; ++i)
      if (cc[i]) return true;
    if (cc[cr]) {
      --cc[cr];
      ans = check(nl - 1, true, false);
      ++cc[cr];
    }
  } else {
    for (int i = cl + 1; i < cr; ++i)
      if (cc[i]) return true;
    if (cl == cr) {
      if (cc[cl]) {
        --cc[cl];
        ans = check(nl - 1, false, false);
        ++cc[cl];
      }
    } else {
      if (cc[cl]) {
        --cc[cl];
        ans = check(nl - 1, false, true);
        ++cc[cl];
      }
      if (!ans && cc[cr]) {
        --cc[cr];
        ans = check(nl - 1, true, false);
        ++cc[cr];
      }
    }
  }
  return ans;
}
