#include #include #include #include using namespace std; using namespace atcoder; using mint=modint1000000007; mint retsum(string n,map& dp){ if(dp.count(n)) return dp[n]; mint t=mint(n.back()-'0'); if(n.length()==1) return t*(t+1)/2; string s=n.substr(0,n.length()-1); string sminus1=s; for(int d=s.length()-1;d>=0;d--){ if(s[d]=='0'){ sminus1[d]='9'; }else{ sminus1[d]=s[d]-1; break; } } return dp[n]=t*(t+1)*retsum(s,dp)/2+(t+10)*(9-t)*retsum(sminus1,dp)/2+45; } int main(){ string n; vector su; map dp; cin>>n; cout<