#include using namespace std; typedef signed long long ll; #undef _P #define _P(...) (void)printf(__VA_ARGS__) #define FOR(x,to) for(x=0;x<(to);x++) #define FORR(x,arr) for(auto& x:arr) #define ITR(x,c) for(__typeof(c.begin()) x=c.begin();x!=c.end();x++) #define ALL(a) (a.begin()),(a.end()) #define ZERO(a) memset(a,0,sizeof(a)) #define MINUS(a) memset(a,0xff,sizeof(a)) //------------------------------------------------------- string S; int M; ll mo=1000000007; ll from[20202]; ll to[20202]; void solve() { int i,j,k,l,r,x,y; string s; cin>>S>>M; ll ret=0; FORR(r,S) from[0]=0; FORR(r,S) { ZERO(to); if(r=='0') { ret++; FOR(i,M) { to[i*10%M]+=from[i]; to[i]+=from[i]; } } else { FOR(i,M) { to[(i*10+r-'0')%M]+=from[i]; to[i]+=from[i]; } to[(r-'0')%M]++; } FOR(i,M) while(to[i]>=mo) to[i]-=mo; swap(from,to); } cout<<(from[0]+ret)%mo<