#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
struct __INIT {
  __INIT() {
    cin.tie(0);
    ios::sync_with_stdio(false);
    cout << fixed << setprecision(15);
  }
} __init;
int dx[8] = {1, 1, 0, -1, -1, -1, 0, 1};
int dy[8] = {0, 1, 1, 1, 0, -1, -1, -1};
int main(void) {
  string N;
  cin >> N;
  int K;
  cin >> K;
  int L = N.length();
  long long ans = 0;
  if (L < K) {
    cout << 0 << "\n";
    return 0;
  }
  if (K == 1) ans = 9 * (L - 1);
  if (K == 2) ans = 81 * ((L - 1) * (L - 2)) / 2;
  if (K == 3) ans = 729 * ((L - 1) * (L - 2) * (L - 3)) / 6;
  if (K == 1) ans += (N[0] - '0');
  if (K == 2) {
    long long plus = N[0] - '1';
    ans += plus * 9 * (L - 1);
    ans += (N[1] - '0') + 9 * (L - 2);
  }
  if (K == 3) {
    long long plus = N[0] - '1';
    ans += plus * 81 * ((L - 1) * (L - 2)) / 2;
    long long plus2 = N[1] - '1';
    ans += plus2 * 9 * (L - 2);
    ans += (N[2] - '0') + 9 * (L - 3);
    ans += 81 * ((L - 2) * (L - 3)) / 2;
  }
  cout << ans << "\n";
}
