MOD = 10**9+7 import sys sys.set_int_max_str_digits(0) def main(): N = input() keta = len(N) dp = [[[[0] * (2) for _ in range(2)] for _ in range(2)] for _ in range(keta + 1)] dp[0][0][0][0] = 1 for i in range(keta): nd = int(N[i]) for j in range(2): iLim = 9 if j else nd for k in range(2): for l in range(2): val = dp[i][j][k][l] if val == 0: continue for d in range(iLim + 1): dstj = j | (d < iLim) dstk = k | (1 if d > 0 else 0) dstl = l | (k == 1 and d == 0) if dstk == 0: dp[i + 1][dstj][dstk][dstl] = 1 else: dp[i + 1][dstj][dstk][dstl] += val * d dp[i + 1][dstj][dstk][dstl] %= MOD last = dp[-1] ans = 0 for j in range(2): for k in range(2): for l in range(2): ans += last[j][k][l] ans -= 1 ans %= MOD print(ans) if __name__ == "__main__": main()