#include using namespace std; #define rep(i,a,b) for(int i=a;i> S >> M; int N = S.length(); rep(j, 0, M) rep(k, 0, 2) dp[0][j][k] = 0; dp[0][0][0] = 1; ll zero = 0; rep(i1, 0, N) { int ii1 = i1 + 1; int c = S[i1] - '0'; if (c == 0) zero++; rep(i2, 0, M) rep(i3, 0, 2) dp[ii1 % 2][i2][i3] = 0; rep(i2, 0, M) rep(i3, 0, 2) { (dp[ii1 % 2][i2][i3] += dp[i1 % 2][i2][i3]) %= MOD; if (i3 || c != 0) { int ii2 = (i2 * 10 + c) % M; int ii3 = 1; (dp[ii1 % 2][ii2][ii3] += dp[i1 % 2][i2][i3]) %= MOD; } } } cout << (dp[N % 2][0][1] + zero) % MOD << endl; }