#include using namespace std; #define REP(i,n) for (int i=0;i<(n);i++) #define ll long long const int MOD = 1000000007; int dp[2][2][3][2][800]; int solve(string N, int P, bool less) { int M = N.size(); memset(dp[0], 0, sizeof(dp[0])); dp[0][0][0][0][0] = 1; REP(a, M) { int cur = a % 2; int tar = 1 - cur; int dig = N[a] - '0'; memset(dp[tar], 0, sizeof(dp[tar])); REP(b, 2) REP (c, 3) REP(d, 2) { int digit = b ? 10 : dig+1; if (M - a < 6) { REP (e, P) REP (f, digit) { dp[tar][b||(f> A >> B >> P; int a = solve(A, P, true); int b = solve(B, P, false); int ans = (b - a) % MOD; ans = (ans + MOD) % MOD; cout << ans << endl; }