#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream cin("ratphu.in");
ofstream cout("ratphu.out");
const int MAXD = 19;
const int MAXP = 20;
int digit[MAXD];
long long dp[1 << MAXD][1 + MAXP];
int main() {
long long n;
int p;
cin >> n >> p;
int digits = -1;
while (n) {
digits++;
digit[digits] = n % 10;
n /= 10;
}
int limit = (1 << (digits + 1)) - 1;
dp[0][0] = 1;
for (int mask = 0; mask < limit; mask++)
for (int j = 0; j < p; j++)
for (int k = 0; k <= digits; k++)
if ((!(mask & (1 << k))))
dp[mask + (1 << k)][(j * 10 + digit[k]) % p] += dp[mask][j];
cout << dp[limit][0] << "\n";
return 0;
}