MOD = 10**9 + 7 S = input().strip() M = int(input()) dp_prev = [0] * M leading_zero_prev = [0] * M for c in S: d = int(c) current_mod = d % M new_dp = [v % MOD for v in dp_prev] new_leading_zero = [v % MOD for v in leading_zero_prev] if d == 0: new_leading_zero[current_mod] = (new_leading_zero[current_mod] + 1) % MOD else: new_dp[current_mod] = (new_dp[current_mod] + 1) % MOD for k in range(M): cnt = dp_prev[k] if cnt == 0: continue new_mod = (k * 10 + d) % M new_dp[new_mod] = (new_dp[new_mod] + cnt) % MOD dp_prev, leading_zero_prev = new_dp, new_leading_zero result = (leading_zero_prev[0] + dp_prev[0]) % MOD print(result)