#include <bits/stdc++.h>
using namespace std;
using lint = long long;
using pint = pair<int, int>;
using vi = vector<int>;
template <typename T>
T gcd(T a, T b) {
  return b ? gcd(b, a % b) : a;
}
template <typename T>
T lcm(T a, T b) {
  return a / gcd(a, b) * b;
}
template <class T>
void corner(bool flg, T hoge) {
  if (flg) {
    cout << hoge << endl;
    exit(0);
  }
}
const int MOD = 1000000007;
const int INF = 1 << 30;
int main() {
  string N;
  int K;
  cin >> N >> K;
  int n = N.size();
  lint res = 0;
  if (K == 1) {
    for (int i = 0; i < n; i++) {
      if (i == 0) {
        int t = N[i] - '0';
        res += t;
      } else {
        res += 9;
      }
    }
  } else if (K == 2) {
    for (int i = 0; i < (int)(n); i++) {
      for (int j = i + 1; j < n; j++) {
        if (i == 0) {
          int t = N[i] - '0';
          if (j == 1) {
            res += 9 * (t - 1);
            int t2 = N[j] - '0';
            res += t2;
          } else {
            res += t * 9;
          }
        } else {
          res += 9 * 9;
        }
      }
    }
  } else {
    for (int i = 0; i < (int)(n); i++) {
      for (int j = i + 1; j < n; j++) {
        for (int k = j + 1; k < n; k++) {
          if (i == 0) {
            int t = N[i] - '0';
            if (j == 1) {
              int t2 = N[j] - '0';
              if (k == 2) {
                res += (t - 1) * 9 * 9;
                res += (t2 - 1) * 9;
                int t3 = N[k] - '0';
                res += t3;
              } else {
                res += (t - 1) * 9 * 9;
                res += t2 * 9;
              }
            } else {
              res += t * 9 * 9;
            }
          } else {
            res += 9 * 9 * 9;
          }
        }
      }
    }
  }
  cout << res << endl;
  return 0;
}
