#include <bits/stdc++.h>
using namespace std;
int ctoi(char c) {
  switch (c) {
    case '0':
      return 0;
    case '1':
      return 1;
    case '2':
      return 2;
    case '3':
      return 3;
    case '4':
      return 4;
    case '5':
      return 5;
    case '6':
      return 6;
    case '7':
      return 7;
    case '8':
      return 8;
    case '9':
      return 9;
    default:
      return 0;
  }
}
int main() {
  string N;
  cin >> N;
  long long K;
  cin >> K;
  long long ans = 0;
  if (K == 1) {
    long long len = N.size();
    ans += ctoi(N[0]) + (len - 1) * 9;
  }
  if (K == 2) {
    long long len = N.size();
    long long topnum = ctoi(N[0]);
    for (long long i = 1; i < len; i++) {
      ans += ctoi(N[i]);
    }
    for (long long i = 1; i <= len - 1; i++) {
      ans += 81 * (i - 1);
    }
    for (long long i = 2; i < len; i++) {
      ans += (9 - ctoi(N[i]));
    }
    ans += (topnum - 1) * 9 * (len - 1);
  }
  if (K == 3) {
    long long len = N.size();
    long long topnum = ctoi(N[0]);
    if (len <= 2) {
      ans = 0;
    } else {
      for (long long i = 1; i < len - 1; i++) {
        for (long long j = i + 1; j < len; j++) {
          ans += ctoi(N[i]) * ctoi(N[j]);
        }
      }
      ans += (topnum - 1) * 81 * (len - 1) * (len - 2) / 2;
      for (long long i = 2; i < len - 1; i++) {
        ans += 9 * (9 - ctoi(N[i])) * (len - i - 1);
      }
      for (long long i = 1; i <= len - 1; i++) {
        ans += 729 * (i - 1) * (i - 2) / 2;
      }
    }
  }
  cout << ans << endl;
}
