#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e9 + 7;
const long long mod = 1e9 + 7;
const int64_t CYCLES_PER_SEC = 2800000000;
inline uint32_t Xor128() {
  static uint32_t x = 123456789;
  static uint32_t y = 362436069;
  static uint32_t z = 521288629;
  static uint32_t w = 88675123;
  uint32_t t = x ^ (x << 11);
  x = y;
  y = z;
  z = w;
  return w = (w ^ (w >> 19)) ^ (t ^ (t >> 8));
}
struct Timer {
  int64_t start;
  Timer() { reset(); }
  void reset() { start = getcycle(); }
  void plus(double a) { start -= (a * CYCLES_PER_SEC); }
  inline double get() { return (double)(getcycle() - start) / CYCLES_PER_SEC; }
  inline int64_t getcycle() {
    uint32_t low, high;
    __asm__ volatile("rdtsc" : "=a"(low), "=d"(high));
    return ((int64_t)low) | ((int64_t)high << 32);
  }
};
int main() {
  string s;
  int k;
  cin >> s >> k;
  int n = s.size();
  if (k == 1) {
    cout << 9 << endl;
  } else if (k == 2) {
    cout << 9 * 9 * (n - 1) << endl;
  } else {
    cout << 9 * ((n - 1) * (n - 2) * 72 + (n - 1) * (n - 2) / 2 * 9) << endl;
  }
  return 0;
}
