#include <bits/stdc++.h>
using namespace std;
// Complete the substrings function below.
int substrings(string n) {
int len=n.length();
long long int dp[len];
dp[0]=n[0]-'0';
for(int i=1;i<len;i++){
dp[i]=((i+1)*(n[i]-'0') + 10*(dp[i-1]));
}
int sum=0;
for(int i=0;i<len;i++){sum+=dp[i];
sum=sum%1000000007;
}
//cout<<sum<<endl;
return sum;
}
int main()
{
ofstream fout(getenv("OUTPUT_PATH"));
string n;
getline(cin, n);
int result = substrings(n);
fout << result << "\n";
fout.close();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gQ29tcGxldGUgdGhlIHN1YnN0cmluZ3MgZnVuY3Rpb24gYmVsb3cuCmludCBzdWJzdHJpbmdzKHN0cmluZyBuKSB7CmludCBsZW49bi5sZW5ndGgoKTsKbG9uZyBsb25nIGludCBkcFtsZW5dOwpkcFswXT1uWzBdLScwJzsKZm9yKGludCBpPTE7aTxsZW47aSsrKXsKICAgIGRwW2ldPSgoaSsxKSoobltpXS0nMCcpICsgMTAqKGRwW2ktMV0pKTsKfQppbnQgc3VtPTA7CmZvcihpbnQgaT0wO2k8bGVuO2krKyl7c3VtKz1kcFtpXTsKc3VtPXN1bSUxMDAwMDAwMDA3Owp9Ci8vY291dDw8c3VtPDxlbmRsOwpyZXR1cm4gc3VtOwoKfQoKaW50IG1haW4oKQp7CiAgICBvZnN0cmVhbSBmb3V0KGdldGVudigiT1VUUFVUX1BBVEgiKSk7CgogICAgc3RyaW5nIG47CiAgICBnZXRsaW5lKGNpbiwgbik7CgogICAgaW50IHJlc3VsdCA9IHN1YnN0cmluZ3Mobik7CgogICAgZm91dCA8PCByZXN1bHQgPDwgIlxuIjsKCiAgICBmb3V0LmNsb3NlKCk7CgogICAgcmV0dXJuIDA7Cn0K