#include #pragma gcc optimize("Ofast") using namespace std; using ll = long long; constexpr ll MOD = 1000000007; vector pows_10; void mod_add(ll& a, ll b) { a = (a + b) %MOD; } int main() { ll k, p; cin >> k >> p; pows_10 = vector(k+5); pows_10[0] = 1; for (int i = 1;i <= k+3; i++) { pows_10[i] = pows_10[i-1] * 10 % p; } vector> dp(k+5, vector(p+5, 0)); long long res = 0; for(int i=0; i<10; i++){ dp[1][i%p] += 1; if(i%p==0) res++; if(k>1){ dp[2][(i + 10*i)%p] += 1; if((i + 10*i)%p==0 && i!=0) res++; } } for(int i = 1; i<=k-2; i++){ for(int j=0; j0 && nv==0) res = (res + dp[i][j])%MOD; } } } cout << res << endl; }