#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
const long long INF = 1000000000000000000;
int main() {
  int K;
  string N;
  cin >> N >> K;
  long long ans = 0;
  if (N.size() == 1) {
    cout << N[0] - '0' << endl;
    return 0;
  }
  reverse(N.begin(), N.end());
  if (K == 1) {
    for (int i = 0; i < N.size() - 1; i++) {
      ans += 9;
    }
    ans += N[N.size() - 1] - '0';
    cout << ans << endl;
  } else if (K == 2) {
    int point = 0;
    for (int i = 1; i < N.size() - 1; i++) {
      if (N[i] != '0') {
        point = i;
      }
      for (int j = 0; j < i; j++) {
        ans += 81;
      }
    }
    int sum = 0;
    for (int i = 0; i < N.size() - 1; i++) {
      sum += 9;
    }
    ans += sum * (N[N.size() - 1] - '0' - 1);
    for (int i = 0; i < N.size() - 1; i++) {
      if (i < point) {
        ans += 9;
      } else {
        ans += (N[i] - '0');
      }
    }
    cout << ans << endl;
  } else if (K == 3) {
    int point = 0;
    for (int i = 2; i < N.size() - 1; i++) {
      if (N[i] != '0') {
        point = i;
      }
      for (int j = 0; j < i; j++) {
        for (int k = j + 1; k < i; k++) {
          ans += 729;
        }
      }
    }
    int sum = 0;
    for (int i = 0; i < N.size() - 1; i++) {
      for (int j = i + 1; j < N.size() - 1; j++) {
        sum += 81;
      }
    }
    ans += sum * (N[N.size() - 1] - '0' - 1);
    for (int i = 0; i < N.size() - 1; i++) {
      for (int j = i + 1; j < N.size() - 1; j++) {
        if (j < point) {
          ans += 81;
        } else {
          ans += (N[j] - '0' - 1) * 9;
          ans += N[i] - '0';
        }
      }
    }
    cout << ans << endl;
  }
}
