#include #include using namespace std; typedef long long ll; const ll MOD = 1000000007; int main() { string n; cin >> n; n.push_back(1); for(int i = 0; i < 100000; i++) n.push_back(0); reverse(n.begin(), n.end()); int k = n.size(); ll p[100005]; p[0] = 1; for(int i = 1; i < k; i++){ p[i] = p[i - 1] * 45 % MOD; } ll d = 1; ll ans = 0; for(int i = k - 1; i >= 0; i--){ if(i == 0){ for(int j = 1; j <= (n[i] - '0'); j++){ ans = (ans + d * j) % MOD; } } else{ ans = (ans + p[i]) % MOD; for(int j = 1; j < (n[i] - '0'); j++){ if(i > 0){ ans = (ans + p[i] * d % MOD * j) % MOD; } } } d = d * (n[i] - '0') % MOD; } cout << ans << endl; }