#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
const double epsilon = PI / 180.0;
long long M = 1e9 + 7;
long long fast(long long a, long long b) {
  long long p = 1;
  while (b) {
    if (b & 1) p *= a;
    a *= a;
    p %= M;
    a %= M;
    b = b >> 1;
  }
  return p;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int q = 1;
  while (q--) {
    string s;
    cin >> s;
    vector<long long> arr(s.size() + 1);
    for (int i = 0; i < s.size(); ++i) {
      arr[i + 1] = arr[i] + (i + 1) * fast(10, i);
    }
    long long ans = 0;
    for (int i = 0; i < s.size(); ++i) {
      long long r = i + 1;
      long long l = s.size() - i - 1;
      long long t = s[i] - '0';
      ans += ((t % M) *
              ((((((r * (r - 1)) / 2) % M) * fast(10, l)) % M + arr[l]) % M)) %
             M;
      ans %= M;
    }
    cout << ans << endl;
  }
  return 0;
}
