#include <bits/stdc++.h>
using namespace std;
long long cnt(string & R, int n, bool cap) {
if (!cap) {
return pow(10, n) + 0.1;
}
if (n == 0)
return 1;
long long numbers = 0;
int ub = R[R.length() - n] - '0';
for (int dig = 0; dig <= ub; dig++)
numbers += cnt(R, n - 1, cap & (dig == ub));
return numbers;
}
long long helper(string & R, int n, int cap) {
if (!n) return 0; // base case when our length get's exhausted.
long long ans = 0;
int ub = (cap) ? R[R.length() - n] - '0' : 9;
// cout << idx << " " << ub << " " << endl;
for (int dig = 0; dig <= ub; dig++) {
ans += dig * cnt(R, n - 1, cap & (dig == ub));
ans += helper(R, n - 1, cap & (dig == ub));
}
return ans;
}
int main() {
string L = "0", R = "15";
cout << helper(R, R.length(), 1);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpsb25nIGxvbmcgY250KHN0cmluZyAmIFIsIGludCBuLCBib29sIGNhcCkgewogICAgaWYgKCFjYXApIHsKICAgICAgICByZXR1cm4gcG93KDEwLCBuKSArIDAuMTsKCiAgICB9CgogICAgaWYgKG4gPT0gMCkKICAgICAgICByZXR1cm4gMTsKCiAgICBsb25nIGxvbmcgbnVtYmVycyA9IDA7CiAgICBpbnQgdWIgPSBSW1IubGVuZ3RoKCkgLSBuXSAtICcwJzsKCiAgICBmb3IgKGludCBkaWcgPSAwOyBkaWcgPD0gdWI7IGRpZysrKQogICAgICAgIG51bWJlcnMgKz0gY250KFIsIG4gLSAxLCBjYXAgJiAoZGlnID09IHViKSk7CgogICAgcmV0dXJuIG51bWJlcnM7CgoKfQpsb25nIGxvbmcgaGVscGVyKHN0cmluZyAmIFIsIGludCBuLCBpbnQgY2FwKSB7CgogICAgaWYgKCFuKSByZXR1cm4gMDsgLy8gYmFzZSBjYXNlIHdoZW4gb3VyIGxlbmd0aCBnZXQncyBleGhhdXN0ZWQuCgogICAgbG9uZyBsb25nIGFucyA9IDA7CiAgICBpbnQgdWIgPSAoY2FwKSA/IFJbUi5sZW5ndGgoKSAtIG5dIC0gJzAnIDogOTsKICAgIC8vIGNvdXQgPDwgaWR4IDw8ICIgIiA8PCB1YiA8PCAiICIgPDwgZW5kbDsKCgogICAgZm9yIChpbnQgZGlnID0gMDsgZGlnIDw9IHViOyBkaWcrKykgewogICAgICAgIGFucyArPSBkaWcgKiBjbnQoUiwgbiAtIDEsIGNhcCAmIChkaWcgPT0gdWIpKTsKICAgICAgICBhbnMgKz0gaGVscGVyKFIsIG4gLSAxLCBjYXAgJiAoZGlnID09IHViKSk7CgogICAgfQoKCiAgICByZXR1cm4gYW5zOwoKfQppbnQgbWFpbigpIHsKICAgIHN0cmluZyBMID0gIjAiLCBSID0gIjE1IjsKICAgIGNvdXQgPDwgaGVscGVyKFIsIFIubGVuZ3RoKCksIDEpOwoKCn0=