#include<bits/stdc++.h>
using namespace std;
long long n;
int p,v[25],dv,mask,x;
long long dp[(1<<20)+5][25];
int main()
{
freopen("ratphu.in","r",stdin);
freopen("ratphu.out","w",stdout);
scanf("%lld",&n);
scanf("%d",&p);
while(n)
{
v[++dv]=n%10;
n/=10;
}
for(int i=1;i<=dv;i++)
{
mask=(1<<(dv-i));
dp[mask][(v[i]%p)]+=1LL;
}
x=(1<<dv)-1;
for(int mask=0;mask<=x;mask++)
{
for(int j=1;j<=dv;j++)
{
if(!(mask & (1<<(dv-j))))
{
for(int rest=0;rest<p;rest++)
{
dp[mask|(1<<(dv-j))][(rest*10+v[j])%p]+=dp[mask][rest];
}
}
}
}
printf("%lld\n",dp[x][0]);
return 0;
}