/*
1. Vsota stevk vseh lihih stevil od 0-10 = 25 - 1 + 3 + 5 + 7 + 9
2. Vsota stevk vseh lihih stevil od 10-100 = 450 = 5 * 45 + 9 * 25 = (5 * 1 + 5 * 2 + ... + 5 * 9) + 9 * stevke lihe (0-10)
3. Vsota stevk vseh lihih stevil od 0-100 = 475 

Vsota stevk vseh lihih stevil od 100-1000 = 6525 = 50 * 45 + 9 * 475

*/
#include <algorithm>
#include <iostream>
#include <string>
using namespace std;

string odstevanje_stringov(string vecji, string manjsi) {
	if (vecji.compare(manjsi) == 0) return "0";
	string rez;
	int temp, ostanek = 0;
	int vindex = (int)vecji.size() - 1, mindex = (int)manjsi.size() - 1;

	//cout << "in";

	while (mindex >= 0) {
		temp = vecji[vindex--] - manjsi[mindex--] - ostanek;
		if (temp < 0) {
			temp += 10;
			ostanek = 1;
		}
		else ostanek = 0;

		rez.push_back(temp +'0');
	}
	while (vindex >= 0) {
		temp = vecji[vindex--] - ostanek;
		if (temp < '0') {
			temp += 10;
			ostanek = 1;
		}
		else ostanek = 0;

		rez.push_back(temp);
	}
	while (rez.back() == '0') rez.pop_back();
	reverse(rez.begin(), rez.end());
	//cout << "out";
	return rez;
}

string sestevanje_stringov(string b1, string b2) {
	string rezultat, r;
	int st1, st2, ostanek;
	int p1, p2;

	//cout << "in " << b1 << " " << b2 << endl;

	p1 = (int)b1.size() - 1;
	p2 = (int)b2.size() - 1;
	ostanek = 0;

	while ((p1 >= 0) || (p2 >= 0)) {
		if (p1 >= 0) {
			st1 = b1[p1] - 48;
			p1--;
		}
		else {
			st1 = 0;
		}
		if (p2 >= 0) {
			st2 = b2[p2] - 48;
			p2--;
		}
		else {
			st2 = 0;
		}
		st1 = st1 + st2 + ostanek;
		st2 = st1 % 10;

		ostanek = st1 / 10;

		r = st2 + 48;
		rezultat = r + rezultat;
		if ((p1<0) && (p2<0)) {

			while (ostanek>0) {
				st2 = ostanek % 10;
				ostanek = ostanek / 10;
				r = st2 + 48;
				rezultat = r + rezultat;
			}
		}
	}

	//cout << "out " << rezultat << endl;

	return rezultat;
}


string izracun(int st) {
	string rez = "0";
	int temp;
	st = (st + 1) / 2; //toliko je lihih stevk-

	//obravnava enic
	temp = st;
	//rez += (temp / 5) * 25;
	rez = sestevanje_stringov(rez, to_string(temp / 5 * 25));
	temp %= 5;
	//rez += temp*temp; //vsota aritmetičnega zaporedja = n(2a1 + (n-1)*2)/2 = n(1 + n-1) = n*n
	rez = sestevanje_stringov(rez, to_string(temp*temp));

	for (int i = 5; i > 0; i *= 10) {
		temp = st;
		//rez += temp / (10 * i) * (i * 45);
		rez = sestevanje_stringov(rez, to_string(temp / (10 * i) * (i * 45)));
		temp %= 10 * i;
		for (int j = 0; j < 9; j++) {
			//rez += min(temp, i) * j;
			rez = sestevanje_stringov(rez, to_string(min(temp, i) * j));
			temp -= i;
			if (temp <= 0) break;
		}
	}

	return rez;
}

int main() {
	int mmin, mmax;
	cin >> mmin >> mmax;
	cout << odstevanje_stringov(izracun(mmax), izracun(mmin - 1));

	return 0;
}