1 #include <cstdio>
2 #include <iostream>
3 #include <cstring>
4 using namespace std;
5 const int mo=998244353;
6 int m,num[10];
7 long long f[60010][101],mi[11],k[11],w[11];
8 char s[21];
9 void change(int x) { for (int i=9;i>=0;i--) w[i]=num[i]-(x/mi[i]),x%=mi[i]; }
10 int main()
11 {
12 // freopen("number.in","r",stdin);
13 // freopen("number.out","w",stdout);
14 scanf("%s%d",s+1,&m);
15 int len=strlen(s+1);
16 for (int i=1;i<=len;i++) num[s[i]-'0']++;
17 mi[0]=1; k[0]=mi[0]*num[0];
18 for (int i=1;i<=9;i++) mi[i]=k[i-1]+1,k[i]=k[i-1]+mi[i]*num[i];
19 for (int i=1;i<=9;i++) if (num[i]>0) f[mi[i]][i%m]=1;
20 for (int i=1;i<=k[9];i++)
21 {
22 change(i);
23 for (int j=0;j<=9;j++)
24 if (w[j]>0)
25 for (int z=0;z<=m-1;z++)
26 (f[i+mi[j]][(z*10+j)%m]+=f[i][z]+mo)%=mo;
27 }
28 printf("%d",f[k[9]][0]);
29 return 0;
30 }