Problem:
Score : 100 points

Problem Statement

Find the number of integers between 1 and K (inclusive) satisfying the following condition, modulo 10^9 + 7:

The sum of the digits in base ten is a multiple of D.

Constraints

All values in input are integers.

1 \leq K < 10^{10000}

1 \leq D \leq 100

Input

Input is given from Standard Input in the following format:

K
D

Output

Print the number of integers satisfying the condition, modulo 10^9 + 7.

Sample Input 1

30
4

Sample Output 1

6

Those six integers are: 4, 8, 13, 17, 22 and 26.

Sample Input 2

1000000009
1

Sample Output 2

2

Be sure to print the number modulo 10^9 + 7.

Sample Input 3

98765432109876543210
58

Sample Output 3

635270834

Solution in Python (3.4.3) (judge verdict: Time Limit Exceeded)

#if tight==1 it is not possible to go over k[idx]
#if tight==0 we can go from 0 to 9
import sys
sys.setrecursionlimit(10**5)
from functools import lru_cache
m = 10**9+7
@lru_cache(None)
def solve(idx,rem,tight):
    if idx==len(k):
        if rem==0:
            return 1
        return 0
    lim = 9 if tight==0 else int(k[idx])
    ans = 0
    for i in range(0,lim+1):
        curTight = tight 
        if i<int(k[idx]):
            curTight=0
        ans+=solve(idx+1,(rem+i)%d,curTight)
        ans%=m
    return ans
k = input().strip()
d = int(input())
print((solve(0,0,1)-1)%m)