#include <bits/stdc++.h>
using namespace std;
const int N = 35;
using ll = long long;
ll l, r;
bool r_1e18 = 0;
int a[N], b[N], ptr, ans, cnt[N];
void process(int a[], ll num) {
  ptr = 0;
  while (num) a[++ptr] = num % 10, num /= 10;
}
bool calc(int pos, bool l, bool r) {
  if (cnt[0] + cnt[1] == ptr && cnt[1] == 1 && r_1e18) return 1;
  if (!pos || !(l || r)) return 1;
  int ll = l ? a[pos] : 0, rr = r ? b[pos] : 9;
  for (int i = ll; i <= rr; i++)
    if (cnt[i]) {
      --cnt[i];
      if (calc(pos - 1, l && (i == ll), r && (i == rr))) {
        ++cnt[i];
        return 1;
      }
      ++cnt[i];
    }
  return 0;
}
void dfs(int pos, int left) {
  if (pos == 9) {
    cnt[pos] = left;
    ans += calc(ptr, 1, 1);
    return;
  }
  for (int i = 0; i <= left; i++) cnt[pos] = i, dfs(pos + 1, left - i);
}
int main() {
  ios::sync_with_stdio(false);
  cin >> l >> r;
  if (l == r) {
    cout << 1 << endl;
    return 0;
  }
  if (r == 1000000000000000000) r_1e18 = 1, --r;
  process(a, l);
  process(b, r);
  dfs(0, ptr);
  cout << ans << endl;
  return 0;
}
