#include <bits/stdc++.h>
using namespace std;
using VP = vector<pair<long long, long long> >;
using VVP = vector<VP>;
using VI = vector<long long>;
using VVI = vector<VI>;
using VVVI = vector<VVI>;
const int inf = 1e9 + 7;
const long long INF = 1LL << 61;
const long long mod = 1e9 + 7;
int main() {
  int i, j;
  string s;
  cin >> s;
  int k;
  cin >> k;
  int l = s.size();
  long long ans = 0;
  vector<vector<bool> > ok(l, vector<bool>(l, 1));
  for (i = 0; i < l; i++) {
    for (j = i + 1; j < l; j++) {
      for (int u = i + 1; u < j; u++) {
        if (s[u] != 0) ok[i][j] = 0;
      }
    }
  }
  if (k == 3) {
    for (i = 0; i < l; i++) {
      for (j = i + 1; j < l; j++) {
        for (int u = j + 1; u < l; u++) {
          if (i != 0) {
            ans += 9 * 9 * 9;
          } else if (i == 0) {
            ans += (s[0] - 1 - '0') * 9 * 9;
            if (ok[i][j]) {
              if (j == 0) continue;
              ans += (s[j] - 1 - '0') * 9;
              if (ok[j][u]) {
                ans += s[u] - '0';
              } else
                ans += 9;
            } else
              ans += 9 * 9;
          }
        }
      }
    }
  } else if (k == 2) {
    for (j = 0; j < l; j++) {
      for (int u = j + 1; u < l; u++) {
        if (j == 0) {
          ans += (s[j] - 1 - '0') * 9;
          if (ok[j][u]) {
            ans += s[u] - '0';
          } else
            ans += 9;
        } else {
          ans += 9 * 9;
        }
      }
    }
  } else if (k == 1) {
    ans += s[0] - '0';
    for (j = 1; j < l; j++) {
      ans += 9;
    }
  }
  cout << ans << endl;
  return 0;
}
