#include <bits/stdc++.h>
using namespace std;
long long nCm_array[1000][1000];
void nCm(void) {
  long long i, j;
  for (i = 0; i < 1000; i++) {
    for (j = 0; j <= i; j++) {
      long long ans;
      if ((j == 0) || (j == i))
        ans = 1;
      else
        ans = nCm_array[i - 1][j] + nCm_array[i - 1][j - 1];
      nCm_array[i][j] = ans;
    }
  }
}
int main() {
  nCm();
  string N;
  cin >> N;
  int K;
  cin >> K;
  int Nlen = N.length();
  long long ans = 0;
  long long aa = 0;
  for (int(i) = 0; (i) < (Nlen); (i)++) {
    if (N[i] != '0') aa++;
  }
  if (aa == K) ans++;
  int deccout = 0;
  for (int(i) = 0; (i) < (Nlen); (i)++) {
    int n = (int)N[i] - (int)'0';
    for (int(j) = 0; (j) < (n); (j)++) {
      if (j == 0) {
        if (K - deccout >= 0) {
          long long anstmp = nCm_array[Nlen - i - 1][K - deccout];
          for (int(l) = 0; (l) < (K - i); (l)++) anstmp *= 9;
          ans += anstmp;
        }
      } else {
        if (K - deccout - 1 >= 0) {
          long long anstmp = nCm_array[Nlen - i - 1][K - deccout - 1];
          for (int(l) = 0; (l) < (K - i - 1); (l)++) anstmp *= 9;
          ans += anstmp;
        }
      }
    }
    if (n != 0) deccout++;
  }
  cout << ans << endl;
  return 0;
}
