#include <iostream>
#include <vector>
#define repeat(i,n) for (int i = 0; (i) < (n); ++(i))
using namespace std;
const int mod = 1e9+7;
int main() {
    string s; int m; cin >> s >> m;
    vector<int> cur(m);
    vector<int> prv;
    int ans = 0;
    for (char c : s) {
        int d = c - '0';
        cur.swap(prv);
        cur.clear();
        cur.resize(m);
        repeat (i,m) {
            cur[i] += prv[i];
            cur[i] %= mod;
            cur[(i * 10 + d) % m] += prv[i];
            cur[(i * 10 + d) % m] %= mod;
            if ((i * 10 + d) % m == 0) {
                ans += prv[i];
                ans %= mod;
            }
        }
        if (d == 0) {
            ans += 1;
            ans %= mod;
        } else {
            cur[d % m] += 1;
            cur[d % m] %= mod;
            if (d % m == 0) {
                ans += 1;
                ans %= mod;
            }
        }
    }
    cout << ans << endl;
    return 0;
}