#include <bits/stdc++.h>

using namespace std;

#define MAXL 50

int L;
int B[MAXL];
int A;
long long P[MAXL];

void transf(long long b) {
  stringstream ss;
  ss << b;
  string s;
  ss >> s;
  L = (int) s.size();
  for (int i = 0; i < L; i++) {
    B[i] = s[i] - '0';
  }
}

long long go(int pos) {
  if (pos == L) {
    return 1;
  }

  long long ret = 0;
  int numLower = max(0, B[pos] - A);
  ret += numLower * P[L - pos - 1];
  if (A <= B[pos]) {
    ret += go(pos + 1);
  }
  return ret;
}

long long solve(int a, long long b) {
  transf(b);
  P[0] = 1;
  for (int i = 1; i <= L; i++) {
    P[i] = P[i - 1] * (10 - a);
  }
  A = a;
  long long ret = go(0);

  L--;
  while (L > 0) {
    for (int i = 0; i < L; i++) {
      B[i] = 9;
    }
    ret += go(0);
    L--;
  }

  return ret;
}

int main() {
	// assert(freopen("fiendint.in", "r", stdin));
	// assert(freopen("fiendint.out", "w", stdout));
	cin.sync_with_stdio(false);

	long long a, b;
  cin >> a >> b;

  long long ans;
  if (a > 9) {
    ans = 0;
  } else {
    ans = solve(a, b - 1);
  }

  cout << ans << endl;

	return 0;
}