#include <bits/stdc++.h>
using namespace std;
string s;
int m;
long long dp[1 << 18][100];
long long calc(int i, int mask, int mod) {
  if (i == s.size()) return mod == 0;
  long long &ret = dp[mask][mod];
  if (ret != -1) return ret;
  ret = 0;
  for (int j = 0; j < s.size(); ++j)
    if (!((mask >> j) & 1)) {
      if (j && s[j - 1] == s[j] && !((mask >> (j - 1)) & 1)) continue;
      if (i == 0 && s[j] == 0) continue;
      ret += calc(i + 1, mask | (1 << j), (mod * 10 + s[j]) % m);
    }
  return ret;
}
int main() {
  cin >> s >> m;
  sort(s.begin(), s.end());
  for (int i = 0; i < s.size(); ++i) s[i] -= '0';
  memset(dp, -1, sizeof(dp));
  printf("%lld\n", calc(0, 0, 0));
  return 0;
}
