#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll Mod = 1000000007;
int main() {
  string N;
  int K;
  cin >> N >> K;
  if (N.size() < 7) {
    int Ni = atoi(N.c_str());
    int ans = 0;
    for (int i = 1; i <= Ni; i++) {
      string str = to_string(i);
      int cnt = 0;
      for (int j = 0; j < str.size(); j++) {
        if (str[j] != '0') {
          cnt++;
        }
      }
      if (cnt == K) {
        ans++;
      }
    }
    cout << ans << endl;
    return 0;
  }
  ll ans = 0;
  ll A = atoi(N.substr(0, 1).c_str());
  ll B = atoi(N.substr(1, 1).c_str());
  ll C = atoi(N.substr(2, 1).c_str());
  if (K == 1) {
    ans += (N.size() - 1) * 9;
    ans += A;
    cout << ans << endl;
  } else if (K == 2) {
    ans += 81;
    ans *= ((N.size() - 2) * (N.size() - 1)) / 2;
    ans += (N.size() - 2) * A * 9;
    for (int i = 11; i <= A * 10 + B; i++) {
      if (i % 10 != 0) {
        ans++;
      }
    }
    cout << ans << endl;
  } else if (K == 3) {
    ll l = N.size();
    ans += (((l - 1) * (l - 2) * (l - 3)) / 6) * 729;
    ans += (((l - 2) * (l - 3)) / 2) * 81 * A;
    ll x1 = 0;
    ll x2 = 0;
    for (int i = 11; i <= (A * 10) + B; i++) {
      if (i % 10 != 0) {
        x1++;
      }
    }
    for (int i = 111; i <= (A * 100) + (B * 10) + C; i++) {
      if (i % 10 != 0 && (i % 100 - i % 10) / 10 != 0) {
        x2++;
      }
    }
    ans += x1 * (l - 3) * 9;
    ans += x2;
    cout << ans << endl;
  }
  return 0;
}
