#include <bits/stdc++.h>
long int calc1(long int keta, long int k);
long int calc2(long int keta, long int k);
int main(void) {
  long int i, j;
  long int k;
  long int ans = 0;
  long int count = 0;
  long int keta[3];
  char n[200];
  char ketanum[3][2];
  scanf("%s %ld", n, &k);
  for (i = 0; i < strlen(n); i++) {
    if (n[i] != '0') {
      keta[count] = strlen(n) - i;
      ketanum[count][0] = n[i];
      ketanum[count][1] = '\0';
      count++;
    }
    if (count == k) {
      break;
    }
  }
  if (k == 1) {
    printf("%ld\n", (n[0] - '0') + calc2(keta[0] - 1, 1));
    return 0;
  } else if (k == 2) {
    ans = (ketanum[1][0] - '0') + calc2(keta[1] - 1, 1);
    ans += (ketanum[0][0] - '1') * calc2(keta[0] - 1, 1);
    for (i = keta[0] - 1; i > 1; i--) {
      ans += calc1(i, 2);
    }
    printf("%ld\n", ans);
    return 0;
  } else {
    ans = (ketanum[2][0] - '0') + calc2(keta[2] - 1, 1);
    ans +=
        (ketanum[1][0] - '0') * calc2(keta[1] - 1, 1) + calc2(keta[1] - 1, 2);
    ans += (ketanum[0][0] - '1') * calc2(keta[0] - 1, 2);
    for (i = keta[0] - 1; i > 2; i--) {
      ans += calc1(i, 3);
    }
    printf("%ld\n", ans);
    return 0;
  }
  return 0;
}
long int calc1(long int keta, long int k) {
  if (k == 1) {
    return 9;
  } else if (k == 2) {
    return 9 * 9 * (keta - 1);
  } else {
    return 9 * calc2(keta - 1, 2);
  }
}
long int calc2(long int keta, long int k) {
  if (k == 1) {
    return 9 * keta;
  } else if (k == 2) {
    return 9 * 9 * keta * (keta - 1) / 2;
  } else {
    return 9 * 9 * 9 * keta * (keta - 1) * (keta - 2) / 6;
  }
}
