n = input() MOD = 10**9+7 dp = [[[0 for _ in range(2)] for _ in range(2)] for _ in range(len(n)+1)] # 上からi桁まで、is_less, 0埋めか? dp[0][0][0] = 1 for i,ni in enumerate(n): #i桁目からi+1桁目に遷移 ni = int(ni) for is_non0 in range(2): for is_less in range(2):#1 なら真に小さい for d in range(10 if is_less else ni+1): # d: i+1桁目の数字 dp[i+1][is_less or d < ni][is_non0 or d!=0] += dp[i][is_less][is_non0]*(d if is_non0 or d else 1) dp[i+1][is_less or d < ni][is_non0 or d!=0] %= MOD print((dp[-1][0][1]+dp[-1][1][1])%MOD)