#include <bits/stdc++.h>
using namespace std;
const int MAX = 101;
long long fac[MAX], finv[MAX], inv[MAX];
int perm(int n, int k) {
  if (k == 0) return 1;
  return n * perm(n - 1, k - 1);
}
long long COM(int n, int k) {
  if (n < k) return 0;
  if (n < 0 || k < 0) return 0;
  return perm(n, k) / perm(k, k);
}
long long func(string s, int k) {
  if (k == 0) return 1;
  if (k == 1 && s.size() == 1) return ((int)s[0] - '0');
  long long ans = 0;
  for (int i = 0; i < s.size(); i++) {
    if (i + 1 < k) continue;
    if (i != s.size() - 1)
      ans += (int)pow(9, k) * COM(i, k - 1);
    else {
      ans += ((int)s[0] - '0' - 1) * (int)pow(9, k - 1) * COM(i, k - 1);
      ans += func(s.substr(1, s.size() - 1), k - 1);
    }
  }
  return ans;
}
int main() {
  string N;
  cin >> N;
  int K;
  cin >> K;
  long long ans = func(N, K);
  cout << ans << endl;
}
