#include <bits/stdc++.h>
using namespace std;
int M2(int k, int m, int b, int d) {
  return (k - 1) * (k - 2) / 2 * 81 + (m - 1) * 9 * (k - 1) + b * 9 + 1 * d;
}
int main() {
  string S;
  cin >> S;
  int s = S.size();
  int p = 0;
  vector<int> n(s);
  for (int i = 0; i < s; i++) {
    n.at(i) = S.at(i) - '0';
    p += n.at(i);
  }
  p -= n.at(0);
  int K;
  cin >> K;
  if (K == 1) {
    cout << (s - 1) * 9 + n.at(0);
  } else if (K == 2) {
    if (s == 1) {
      cout << 0 << endl;
    } else if (s == 2) {
      cout << (n.at(0) - 1) * 9 + n.at(1) << endl;
    } else {
      int k = s - 1;
      for (int i = 1; i < s; i++) {
        if (n.at(i) != 0) {
          k = i;
          break;
        }
      }
      int b = s - k - 1;
      cout << M2(s, n.at(0), b, n.at(k)) << endl;
    }
  } else {
    if (s == 1 || s == 2) {
      cout << 0 << endl;
    } else if (s == 3) {
      cout << 81 * (n.at(0) - 1) + 9 + (n.at(1) - 1) + n.at(2) << endl;
    } else {
      int k = s - 1;
      for (int i = 1; i < s; i++) {
        if (n.at(i) != 0) {
          k = i;
          break;
        }
      }
      int c = 0;
      if (k == s - 1) {
        c = n.at(s - 1);
      } else if (k == s - 2) {
        c = (n.at(s - 2) - 1) * 9 + n.at(s - 1);
      } else {
        int l = s - 1;
        for (int i = k + 1; i < s; i++) {
          if (n.at(i) != 0) {
            l = i;
            break;
          }
        }
        int b = s - l - 1;
        c = M2(s - k, n.at(k), b, n.at(l));
      }
      cout << 729 * (s - 3) * (s - 2) * (s - 1) / 6 +
                  81 * (n.at(0) - 1) * (s - 2) * (s - 1) / 2 + c
           << endl;
    }
  }
}
