#include <bits/stdc++.h>
using namespace std;
string n;
int k;
long long d[101][101];
long long ret = 0;
bool go2(string x, string y) {
  for (int i = 0; i < x.size(); i++) {
    if (x[i] > y[i]) {
      return true;
    } else if (x[i] < y[i])
      return false;
  }
  return false;
}
void go(string x, int y) {
  if (x.size() == n.size()) {
    if (y == k) {
      if (go2(x, n)) {
        ret += 1;
      }
    }
    return;
  }
  if (y == 0) {
    for (int i = 1; i <= 9; i++) {
      go(x + (char)('0' + i), y + 1);
    }
  } else {
    go(x + '0', y);
    if (y < k) {
      for (int i = 1; i <= 9; i++) {
        go(x + (char)('0' + i), y + 1);
      }
    }
  }
}
int main() {
  cin.tie(0);
  cout.tie(0);
  ios_base::sync_with_stdio(false);
  cin >> n >> k;
  long long ans = 0;
  long long cnt = 1;
  d[0][0] = 1;
  for (int i = 1; i < 101; i++) {
    d[i][0] = 1;
    d[i][i] = 1;
    for (int j = 1; j < i; j++) {
      d[i][j] = d[i - 1][j - 1] + d[i - 1][j];
    }
  }
  cnt = 9;
  for (int i = 0; i < k - 1; i++) {
    cnt *= (long long)9;
  }
  for (long long i = k; i <= n.size(); i++) {
    long long tmp = cnt * d[i - 1][k - 1];
    ans += tmp;
  }
  go("", 0);
  cout << ans - ret << '\n';
}
