#include <bits/stdc++.h>   using namespace std;   const long long INF = LLONG_MAX;   const long long mod = 1e9 + 7;   inline long long power(long long n, long long k, long long mod = INF) {     long long ans = 1;     while (k > 0) {       if (k & 1) ans = (ans * n) % mod;       n = (n * n) % mod;       k >>= 1;     }     return ans;   }   void sum() {     string s;     cin >> s;     long long n = (long long)s.size();     long long pre[n + 1];     long long suf[n + 2];     pre[1] = s[0] -  0 ;     suf[n] = s[n - 1] -  0 ;     suf[n + 1] = 0;     suf[0] = 0;     pre[0] = 0;     long long st = pre[1];     long long en = suf[n];     long long t = 1;     long long ans = 0;     for (long long i = 1; i < n; ++i) {       t = (t * 10) % mod;       st = (st * 10 + s[i] -  0 ) % mod;       pre[i + 1] = (pre[i] % mod + st) % mod;       en = (en + t * (s[n - i - 1] -  0 )) % mod;       suf[n - i] = en;     }     for (long long i = 2; i <= n + 1; ++i) {       long long temp = i - 1;       temp %= mod;       ans += (((pre[i - 2] * t) % mod) + (((temp)*suf[i]) % mod)) % mod;       ans %= mod;       t = ((t % mod) * power(10, mod - 2, mod)) % mod;     }     cout << (ans) % mod <<   n ;   }   int32_t main() {     ios::sync_with_stdio(false);     cin.tie(NULL);     sum();     return 0;   }   