import sys input = sys.stdin.readline N=input().strip() mod=10**9+7 if int(N)<=2000: ANS=0 for i in range(int(N)+1): x=str(i) SX=1 for y in x: SX=SX*int(y) ANS+=SX print(ANS%mod) exit() S=[1,45] for i in range(2*10**5): S.append(S[-1]*45%mod) S1=[0,45] for i in range(2*10**5): S1.append((S1[-1]+pow(45,i+2,mod))%mod) H=[0,1,3,6,10,15,21,28,36,45,0] H1=[1,2,4,7,11,16,22,29,37,46] ANS=0 kakeru=1 LEN=len(N) for i in range(LEN): if i==0: ANS=ANS+(H[int(N[i])-1])*pow(45,LEN-i-1,mod)+S1[LEN-i-1] elif i==LEN-1: ANS=ANS+kakeru*H[int(N[i])]*S[LEN-i-1] else: ANS=ANS+kakeru*H[int(N[i])-1]*S[LEN-i-1] ANS%=mod kakeru=kakeru*int(N[i])%mod #print(ANS) print(ANS)