def f(s,t): if s<=t: return (s+t)*(t-s+1)//2 else: return 0 N=input() Mod=10**9+7 DP=[[0,0] for _ in range(len(N))] X=[x*(x+1)//2 for x in range(10)] n=int(N[0]) DP[0][0]=n*(n+1)//2 DP[0][1]=n*(n-1)//2 for i,r in enumerate(N[1:],1): D=DP[i] E=DP[i-1] r=int(r) D[0]=((E[0]+1)*f(0,r) +(E[1]+1)*f(r+1,9))%Mod D[1]=((E[0]+1)*f(0,r-1)+(E[1]+1)*f(r ,9))%Mod print(DP[-1][0])