#include <bits/stdc++.h>
using namespace std;
const long long M = 105;
string s;
long long n, k;
long long dp[M][M][2];
long long slove(long long ind, long long c, long long b) {
  if (ind == n && c == k) {
    return 1;
  }
  if (ind == n || c > k) return 0;
  if (dp[ind][c][b] != -1) return dp[ind][c][b];
  if (b == 0) {
    long long i, ans = 0;
    for (i = 1; i <= 9; i++) {
      ans += slove(ind + 1, c + 1, 0);
    }
    ans += slove(ind + 1, c, 0);
    dp[ind][c][b] = ans;
    return ans;
  } else {
    long long i, x = s[ind] - '0', ans = 0;
    if (x > 0) {
      for (i = 1; i < x; i++) {
        ans += slove(ind + 1, c + 1, 0);
      }
      ans += slove(ind + 1, c + 1, 1);
    }
    ans += slove(ind + 1, c, 0);
    dp[ind][c][b] = ans;
    return ans;
  }
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  srand(time(NULL));
  ;
  long long x = 0, y = 0, i, t, ans = 0, j, c = 0, z = 0, m;
  cin >> s >> k;
  n = s.size();
  memset((dp), (-1), sizeof((dp)));
  cout << slove(0, 0, 1);
}
