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 C# (.NET Core 3.1.201) (judge verdict: Time Limit Exceeded)

using System;
using System.Numerics;

public static class Solution
{
  public static void Main()
  {
    BigInteger k = BigInteger.Parse(Console.ReadLine());
    int d = int.Parse(Console.ReadLine());
    int count = 0;
    while (k > 0)
    {
      int digitsSum = SumDigits(k.ToString());
      if (digitsSum % d == 0)
        count++;
      k--;
    }
    Console.WriteLine(count);
  }

  public static int SumDigits(ReadOnlySpan<char> k)
  {
    if (k.Length == 0) return 0;
    if (k.Length == 1) return k[0] - '0';
    return (k[0] - '0') + SumDigits(k.Slice(1, k.Length - 1));
  }
}