#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define f(c) (ll)(c-'0')
#define IOS ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
const ll mod = 1000000007;
string s; ll d, n;
vector<vector<vector<ll>>> dp;
ll rec(ll level, ll r, ll ff){
if(level==n) return (r%d==0);
if(dp[level][r][ff]!=-1) return dp[level][r][ff];
ll ans=0;
for(ll i=0; i<=(ff)*9 + (1-ff)*f(s[level]); ++i)
ans += rec(level+1, (10*r+i)%d, ff | (i < f(s[level]))),
ans %= mod;
return dp[level][r][ff]=ans;
}
void jarvis(){
cin >> s >> d;
n = s.size();
dp = vector<vector<vector<ll>>>(n, vector<vector<ll>>(d, vector<ll>(2, -1)));
cout << rec(0, 0, 0) - 1;
}
signed main(){
IOS
jarvis();
}