#include <bits/stdc++.h>
using namespace std;
long long dp[1 << 18][100], d, f[20];
int main() {
  int m, l, n, i, j, k, c[10];
  char a[20];
  memset(c, 0, sizeof(c));
  for (f[0] = 1, i = 1; i < 20; i++) f[i] = f[i - 1] * i;
  scanf("%s%d", a, &m);
  l = strlen(a), n = 1 << l;
  for (i = 0; i < l; i++) c[a[i] -= '0']++;
  for (d = 1, i = 0; i < 10; i++) d *= f[c[i]];
  dp[0][0] = 1;
  for (i = 0; i < n; i++)
    for (j = 0; j < l; j++)
      if (!(i & 1 << j))
        for (k = 0; k < m; k++)
          if (!(i == 0 && a[j] == 0))
            dp[i | 1 << j][(k * 10 + a[j]) % m] += dp[i][k];
  printf("%I64d\n", dp[n - 1][0] / d);
  return 0;
}
