#include <iostream>
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
string k;
int d;
int n;
ll M = 1e9 + 7;
const int N = 1e4 + 5;
const int D = 105;
ll dp[N][D][2][2];
ll solve(int i, int sum, int can, int zer){
if(i < 0 && !zer && sum == 0) return 1ll;
else if(i < 0) return 0;
if(~dp[i][sum][can][zer] && can) return dp[i][sum][can][zer] ;
int j = n - 1 - i;
ll ans = 0ll;
int a = k[j] - '0';
for(int dig = 0; dig <= ((can)?9:a) ; dig++){
ans = (ans +
solve(i- 1, (sum + dig)%d, (can||(dig < a)), (zer&&(dig == 0)) ))%M;
}
return dp[i][sum][can][zer] = ans;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin>>k;
cin>>d;
memset(dp, - 1, sizeof(dp));
n = k.length();
cout<<solve(n - 1, 0,0,1);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4gCnR5cGVkZWYgbG9uZyBsb25nIGxsOwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RyaW5nIGs7IAppbnQgZDsgCmludCBuOyAKbGwgTSA9IDFlOSArIDc7IApjb25zdCBpbnQgTiA9IDFlNCArIDU7IApjb25zdCBpbnQgRCA9IDEwNTsgCmxsIGRwW05dW0RdWzJdWzJdOyAKbGwgc29sdmUoaW50IGksIGludCBzdW0sIGludCBjYW4sIGludCB6ZXIpewoKICAgICBpZihpIDwgMCAmJiAhemVyICYmIHN1bSA9PSAwKSByZXR1cm4gMWxsOyAKICAgICBlbHNlIGlmKGkgPCAwKSByZXR1cm4gMDsgCiAgaWYofmRwW2ldW3N1bV1bY2FuXVt6ZXJdICYmIGNhbikgcmV0dXJuIGRwW2ldW3N1bV1bY2FuXVt6ZXJdIDsgCiAgICAgaW50IGogPSBuIC0gMSAtIGk7IAogICAgIGxsIGFucyA9IDBsbDsgCiAgICAgaW50IGEgPSBrW2pdIC0gJzAnOyAKIGZvcihpbnQgZGlnID0gMDsgZGlnIDw9ICgoY2FuKT85OmEpIDsgZGlnKyspewogICAgICAKCiBhbnMgPSAoYW5zICsgCiAgc29sdmUoaS0gMSwgKHN1bSArIGRpZyklZCwgKGNhbnx8KGRpZyA8IGEpKSwgKHplciYmKGRpZyA9PSAwKSkgKSklTTsgCgogICB9CiAgIHJldHVybiBkcFtpXVtzdW1dW2Nhbl1bemVyXSA9IGFuczsgCn0KCmludCBtYWluKCkgewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IAogICAgY2luLnRpZShOVUxMKTsgY291dC50aWUoTlVMTCk7IAoKICAgIGNpbj4+azsgCiAgICBjaW4+PmQ7IAogICAgbWVtc2V0KGRwLCAtIDEsIHNpemVvZihkcCkpOyAKICAgIG4gPSBrLmxlbmd0aCgpOyAKICAgIGNvdXQ8PHNvbHZlKG4gLSAxLCAwLDAsMSk7IAoKfQ==