#include #include #include using namespace std; using namespace atcoder; using mint = modint1000000007; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf 1000000001 string N; mint get(int ind,int f){ if(ind==N.size())return 1; static vector dp(200000,vector(2,0)); static vector visited(200000,vector(2,false)); if(visited[ind][f])return dp[ind][f]; visited[ind][f] = true; mint ret = 0; rep(i,10){ int t = N[ind] - '0'; if(i>N; //reverse(N.begin(),N.end()); mint ans = get(0,0); rep(i,N.size()){ ans += mint(45).pow(i); } ans--; cout<