#include <bits/stdc++.h>
using namespace std;
int freq[10], LL[20], RR[20], tfreq[10];
int ans;
long long L, R;
bool can(int d, bool sameL, bool sameR) {
  if (d < 0) return true;
  int l = LL[d], r = RR[d];
  int minok = 0, maxok = 9;
  if (sameR) {
    if (tfreq[r]) {
      --tfreq[r];
      if (can(d - 1, sameL && r == l, true)) return true;
      ++tfreq[r];
    }
    maxok = r - 1;
  }
  if (sameL) {
    if (tfreq[l] && !(sameR && r == l)) {
      --tfreq[l];
      if (can(d - 1, true, sameR && r == l)) return true;
      ++tfreq[l];
    }
    minok = l + 1;
  }
  for (int i = minok; i <= maxok; ++i)
    if (tfreq[i]) return true;
  return false;
}
void go(int lef, int d) {
  if (d == 9) {
    freq[d] = lef;
    memcpy(tfreq, freq, sizeof(freq));
    if (can(18, true, true)) ++ans;
    return;
  }
  for (int f = 0; f <= lef; ++f) {
    freq[d] = f;
    go(lef - f, d + 1);
  }
}
int main() {
  scanf("%lld%lld", &L, &R);
  long long tmpR = R;
  for (int i = 0; i <= 18; ++i) {
    LL[i] = L % 10;
    L /= 10;
    RR[i] = tmpR % 10;
    tmpR /= 10;
  }
  go(19, 0);
  printf("%d\n", ans);
}
