#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
  string n;
  ll k;
  cin >> n >> k;
  if (k == 3 && n.size() < 3) {
    cout << "0" << endl;
    return 0;
  }
  if (k == 2 && n.size() < 2) {
    cout << "0" << endl;
    return 0;
  }
  if (k == 1) {
    cout << (n.size() - 1) * 9 + (ll)(n[0] - '0') << endl;
    return 0;
  }
  ll ans = 0;
  if (k == 2) {
    for (ll i = 2; i < n.size(); i++) {
      ans += (i - 1) * 81;
    }
    ans += (int)(n[0] - '0' - 1) * (n.size() - 1) * 9;
    ll not_zero = 0;
    while (1) {
      not_zero++;
      if (n[not_zero] != '0') break;
      if (not_zero >= n.size()) {
        not_zero = 0;
        break;
      }
    }
    if (not_zero)
      ans += (int)(n[not_zero] - '0') + (n.size() - not_zero - 1) * 9;
    cout << ans << endl;
    return 0;
  }
  if (k == 3) {
    for (ll i = 3; i < n.size(); i++) {
      ans += (i - 1) * (i - 2) / 2 * 729;
    }
    ans += (ll)(n[0] - '0' - 1) * (n.size() - 1) * (n.size() - 2) / 2 * 81;
    ll not_zero = 0;
    while (1) {
      not_zero++;
      if (n[not_zero] != '0') break;
      if (not_zero >= n.size()) {
        not_zero = 0;
        break;
      }
    }
    if (not_zero) {
      if (n[not_zero] > 1)
        ans += (ll)(n[not_zero] - '0' - 1) * (n.size() - not_zero - 1) * 9;
      ans += (n.size() - not_zero - 1) * (n.size() - not_zero - 2) / 2 * 81;
      ll not_zero2 = not_zero;
      while (1) {
        not_zero2++;
        if (n[not_zero2] != '0') break;
        if (not_zero2 >= n.size()) {
          not_zero2 = 0;
          break;
        }
      }
      if (not_zero2) ans += (n.size() - not_zero2) * 9;
    }
    cout << ans << endl;
    return 0;
  }
  return 0;
}
