#include <bits/stdc++.h>
long long C[205][205], k, t, l, p[22][250], e[25], s, i, j;
long long qiu(int l, int d = 0) {
  int i, j, k;
  for (i = 0; i <= l; i++)
    for (j = 0; j <= 16; j++) p[j][i] = 0;
  p[0][l] = 1;
  for (i = 1; i <= 16; i++)
    for (j = 0; j <= l; j++)
      if (p[i - 1][j] != 0)
        for (k = 0; k <= e[i]; k++) {
          if (j < k) break;
          p[i][j - k] += p[i - 1][j] * C[j][k];
        }
  return d ? p[16][0] / 16 * 15 : p[16][0];
}
int main() {
  for (i = 0; i <= 199; i++)
    for (j = 0; j <= i; j++) C[i][j] = j ? C[i - 1][j] + C[i - 1][j - 1] : 1;
  scanf("%I64d%I64d", &k, &t);
  for (i = 1; i <= 16; i++) e[i] = t;
  for (l = 1; l <= 99; l++) {
    s = qiu(l, 1);
    if (s >= k) break;
    k -= s;
  }
  for (i = 1; i <= l; i++)
    for (j = 1; j <= 16; j++)
      if (i != 1 || j != 1) {
        e[j]--;
        s = qiu(l - i);
        if (s >= k) {
          printf("%c", j < 11 ? char(j + 47) : char(j + 86));
          break;
        }
        k -= s, e[j]++;
      }
}
