#include using namespace std; const int mod = 1e9 + 7; string S; int M; map< pair< int, int >, int > dp; inline int rec(int idx, int value) { if(dp.find({idx, value}) != dp.end()) return(dp[{idx, value}]); if(idx == S.size()) return(value == 0); return(dp[{idx, value}] = rec(idx + 1, (value * 10 + S[idx]) % M) + rec(idx + 1, value) % mod); } int main() { cin >> S; for(int i = 0; i < S.size(); i++) S[i] -= '0'; cin >> M; int ret = 0; for(int i = 0; i < S.size(); i++) { if(S[i] == 0) ++ret; else (ret += rec(i + 1, S[i] % M)) %= mod; } cout << ret << endl; }