#include <bits/stdc++.h>
using namespace std;
int comb(int a, int b) {
  int x = 1;
  for (int i = 0; i < b; i++) {
    x *= a - i;
  }
  int y = 1;
  for (int i = 0; i < b; i++) {
    y *= i + 1;
  }
  return x / y;
}
int ctoi(const 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 -1;
  }
}
int main() {
  char n[101];
  int k;
  scanf("%s", n);
  scanf("%d", &k);
  int keta;
  while (n[keta] != 0) {
    keta++;
  }
  int ans = 0;
  if (k == 1) {
    for (int i = k; i <= keta; i++) {
      if (i == keta) {
        ans += ctoi(n[0]);
      } else if (k < i < keta) {
        ans += 9;
      } else if (i == k) {
        ans += 9;
      }
    }
  } else if (k == 2) {
    for (int i = k; i <= keta; i++) {
      if (i == keta) {
        ans += (ctoi(n[0]) - 1) * comb(i - 1, k - 1) * 9;
        ans += comb(i - 2, k - 1) * 9;
        ans += ctoi(n[1]);
      } else if (k < i < keta) {
        ans += comb(i - 1, k - 1) * 9 * 9;
      } else if (i == k) {
        ans += 9 * 9;
      }
    }
  } else {
    for (int i = k; i <= keta; i++) {
      if (i == keta) {
        ans += (ctoi(n[0]) - 1) * comb(i - 1, k - 1) * 9 * 9;
        ans += comb(i - 2, k - 1) * 9 * 9;
        ans += ctoi(n[1] - 1) * comb(i - 2, k - 2) * 9;
        ans += comb(i - 3, k - 2) * 9;
        ans += ctoi(n[2]);
      } else if (k < i < keta) {
        ans += comb(i - 1, k - 1) * 9 * 9 * 9;
      } else if (i == k) {
        ans += 9 * 9 * 9;
      }
    }
  }
  printf("%d\n", ans);
}
