const fs = require("fs");
const input = fs.readFileSync(0, "utf8").trim().split(/\s+/);
let a = BigInt(input[0]);
let b = BigInt(input[1]);
function countDigitUpTo(n, d) {
if (n < 0n) return 0n;
let total = 0n;
let factor = 1n;
while (factor <= n) {
const tenFactor = factor * 10n;
const high = n / tenFactor;
const cur = (n / factor) % 10n;
const low = n % factor;
if (cur > d) total += (high + 1n) * factor;
else if (cur === d) total += high * factor + (low + 1n);
else total += high * factor;
factor *= 10n;
}
return total;
}
function count369UpTo(n) {
if (n < 0n) return 0n;
return (
countDigitUpTo(n, 3n) +
countDigitUpTo(n, 6n) +
countDigitUpTo(n, 9n)
);
}
const result = count369UpTo(b) - count369UpTo(a - 1n);
console.log(result.toString());
Y29uc3QgZnMgPSByZXF1aXJlKCJmcyIpOwoKY29uc3QgaW5wdXQgPSBmcy5yZWFkRmlsZVN5bmMoMCwgInV0ZjgiKS50cmltKCkuc3BsaXQoL1xzKy8pOwpsZXQgYSA9IEJpZ0ludChpbnB1dFswXSk7CmxldCBiID0gQmlnSW50KGlucHV0WzFdKTsKCmZ1bmN0aW9uIGNvdW50RGlnaXRVcFRvKG4sIGQpIHsKICBpZiAobiA8IDBuKSByZXR1cm4gMG47CgogIGxldCB0b3RhbCA9IDBuOwogIGxldCBmYWN0b3IgPSAxbjsKCiAgd2hpbGUgKGZhY3RvciA8PSBuKSB7CiAgICBjb25zdCB0ZW5GYWN0b3IgPSBmYWN0b3IgKiAxMG47CiAgICBjb25zdCBoaWdoID0gbiAvIHRlbkZhY3RvcjsKICAgIGNvbnN0IGN1ciA9IChuIC8gZmFjdG9yKSAlIDEwbjsKICAgIGNvbnN0IGxvdyA9IG4gJSBmYWN0b3I7CgogICAgaWYgKGN1ciA+IGQpIHRvdGFsICs9IChoaWdoICsgMW4pICogZmFjdG9yOwogICAgZWxzZSBpZiAoY3VyID09PSBkKSB0b3RhbCArPSBoaWdoICogZmFjdG9yICsgKGxvdyArIDFuKTsKICAgIGVsc2UgdG90YWwgKz0gaGlnaCAqIGZhY3RvcjsKCiAgICBmYWN0b3IgKj0gMTBuOwogIH0KICByZXR1cm4gdG90YWw7Cn0KCmZ1bmN0aW9uIGNvdW50MzY5VXBUbyhuKSB7CiAgaWYgKG4gPCAwbikgcmV0dXJuIDBuOwogIHJldHVybiAoCiAgICBjb3VudERpZ2l0VXBUbyhuLCAzbikgKwogICAgY291bnREaWdpdFVwVG8obiwgNm4pICsKICAgIGNvdW50RGlnaXRVcFRvKG4sIDluKQogICk7Cn0KCmNvbnN0IHJlc3VsdCA9IGNvdW50MzY5VXBUbyhiKSAtIGNvdW50MzY5VXBUbyhhIC0gMW4pOwpjb25zb2xlLmxvZyhyZXN1bHQudG9TdHJpbmcoKSk7Cg==