#include <bits/stdc++.h>
using namespace std;
long long ctoi(char c) {
  if (c >= '0' && c <= '9') {
    return c - '0';
  }
  return 0;
}
int main() {
  string n;
  cin >> n;
  long long K;
  cin >> K;
  long long dp[n.size()][K + 1][2];
  for (int i = 0; i < (int)(n.size()); i++)
    for (int j = 0; j < (int)(K + 1); j++)
      for (int k = 0; k < (int)(2); k++) {
        dp[i][j][k] = 0;
      }
  dp[0][0][1] = 1;
  dp[0][1][0] = 1;
  dp[0][1][1] = ctoi(n[0]) - 1;
  for (int i = 1; i < n.size(); i++) {
    for (int j = 0; j < (int)(K + 1); j++) {
      dp[i][j][1] += dp[i - 1][j][1] + dp[i - 1][j][0];
    }
    for (int j = 0; j < (int)(K); j++) {
      dp[i][j + 1][1] += 9 * dp[i - 1][j][1];
    }
    if (n[i] == 0) {
      for (int j = 1; j < K + 1; j++) {
        dp[i][j][0] += dp[i - 1][j][0];
      }
    } else {
      for (int j = 0; j < (int)(K); j++) {
        dp[i][j + 1][0] += dp[i - 1][j][0];
      }
      long long num = ctoi(n[i]);
      if (num > 1) {
        for (int j = 0; j < (int)(K); j++) {
          dp[i][j + 1][1] += dp[i - 1][j][0] * (num - 1);
        }
      }
    }
  }
  long long ans = 0;
  ans += dp[n.size() - 1][K][0] + dp[n.size() - 1][K][1];
  cout << ans << endl;
}
