'use strict';
process.stdin.resume();
process.stdin.setEncoding('utf8');
var remainder = '';
process.stdin.on('data', function(chunk) {
remainder += chunk;
});
process.stdin.on('end', function() {
// Tách input theo dòng và loại bỏ những dòng trống
var lines = remainder.split('\n').filter(function(line) {
return line.trim() !== '';
});
// Giả sử input nằm ở dòng đầu tiên: "a b"
if (lines.length > 0) {
var tokens = lines[0].trim().split(/\s+/);
var a = parseInt(tokens[0], 10);
var b = parseInt(tokens[1], 10);
var result = computeClaps(b) - (a > 0 ? computeClaps(a - 1) : 0);
process.stdout.write(result.toString() + "\n");
}
});
function computeClaps(n) {
var s = n.toString();
var memo = {};
function dp(pos, tight, started) {
if (pos === s.length) return { ways: 1, claps: 0 };
var key = pos + '_' + (tight ? 1 : 0) + '_' + (started ? 1 : 0);
if (memo.hasOwnProperty(key)) return memo[key];
var ways = 0, claps = 0;
var limit = tight ? parseInt(s.charAt(pos), 10) : 9;
for (var d = 0; d <= limit; d++) {
var newTight = tight && (d === limit);
var newStarted = started || (d !== 0);
var res = dp(pos + 1, newTight, newStarted);
var clap = (newStarted && (d === 3 || d === 6 || d === 9)) ? 1 : 0;
ways += res.ways;
claps += res.claps + res.ways * clap;
}
memo[key] = { ways: ways, claps: claps };
return memo[key];
}
return dp(0, true, false).claps;
}
J3VzZSBzdHJpY3QnOwoKcHJvY2Vzcy5zdGRpbi5yZXN1bWUoKTsKcHJvY2Vzcy5zdGRpbi5zZXRFbmNvZGluZygndXRmOCcpOwoKdmFyIHJlbWFpbmRlciA9ICcnOwoKcHJvY2Vzcy5zdGRpbi5vbignZGF0YScsIGZ1bmN0aW9uKGNodW5rKSB7CiAgcmVtYWluZGVyICs9IGNodW5rOwp9KTsKCnByb2Nlc3Muc3RkaW4ub24oJ2VuZCcsIGZ1bmN0aW9uKCkgewogIC8vIFTDoWNoIGlucHV0IHRoZW8gZMOybmcgdsOgIGxv4bqhaSBi4buPIG5o4buvbmcgZMOybmcgdHLhu5FuZwogIHZhciBsaW5lcyA9IHJlbWFpbmRlci5zcGxpdCgnXG4nKS5maWx0ZXIoZnVuY3Rpb24obGluZSkgewogICAgcmV0dXJuIGxpbmUudHJpbSgpICE9PSAnJzsKICB9KTsKICAKICAvLyBHaeG6oyBz4butIGlucHV0IG7hurFtIOG7nyBkw7JuZyDEkeG6p3UgdGnDqm46ICJhIGIiCiAgaWYgKGxpbmVzLmxlbmd0aCA+IDApIHsKICAgIHZhciB0b2tlbnMgPSBsaW5lc1swXS50cmltKCkuc3BsaXQoL1xzKy8pOwogICAgdmFyIGEgPSBwYXJzZUludCh0b2tlbnNbMF0sIDEwKTsKICAgIHZhciBiID0gcGFyc2VJbnQodG9rZW5zWzFdLCAxMCk7CiAgICAKICAgIHZhciByZXN1bHQgPSBjb21wdXRlQ2xhcHMoYikgLSAoYSA+IDAgPyBjb21wdXRlQ2xhcHMoYSAtIDEpIDogMCk7CiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShyZXN1bHQudG9TdHJpbmcoKSArICJcbiIpOwogIH0KfSk7CgpmdW5jdGlvbiBjb21wdXRlQ2xhcHMobikgewogIHZhciBzID0gbi50b1N0cmluZygpOwogIHZhciBtZW1vID0ge307CgogIGZ1bmN0aW9uIGRwKHBvcywgdGlnaHQsIHN0YXJ0ZWQpIHsKICAgIGlmIChwb3MgPT09IHMubGVuZ3RoKSByZXR1cm4geyB3YXlzOiAxLCBjbGFwczogMCB9OwoKICAgIHZhciBrZXkgPSBwb3MgKyAnXycgKyAodGlnaHQgPyAxIDogMCkgKyAnXycgKyAoc3RhcnRlZCA/IDEgOiAwKTsKICAgIGlmIChtZW1vLmhhc093blByb3BlcnR5KGtleSkpIHJldHVybiBtZW1vW2tleV07CgogICAgdmFyIHdheXMgPSAwLCBjbGFwcyA9IDA7CiAgICB2YXIgbGltaXQgPSB0aWdodCA/IHBhcnNlSW50KHMuY2hhckF0KHBvcyksIDEwKSA6IDk7CgogICAgZm9yICh2YXIgZCA9IDA7IGQgPD0gbGltaXQ7IGQrKykgewogICAgICB2YXIgbmV3VGlnaHQgPSB0aWdodCAmJiAoZCA9PT0gbGltaXQpOwogICAgICB2YXIgbmV3U3RhcnRlZCA9IHN0YXJ0ZWQgfHwgKGQgIT09IDApOwogICAgICB2YXIgcmVzID0gZHAocG9zICsgMSwgbmV3VGlnaHQsIG5ld1N0YXJ0ZWQpOwogICAgICB2YXIgY2xhcCA9IChuZXdTdGFydGVkICYmIChkID09PSAzIHx8IGQgPT09IDYgfHwgZCA9PT0gOSkpID8gMSA6IDA7CiAgICAgIHdheXMgKz0gcmVzLndheXM7CiAgICAgIGNsYXBzICs9IHJlcy5jbGFwcyArIHJlcy53YXlzICogY2xhcDsKICAgIH0KCiAgICBtZW1vW2tleV0gPSB7IHdheXM6IHdheXMsIGNsYXBzOiBjbGFwcyB9OwogICAgcmV0dXJuIG1lbW9ba2V5XTsKICB9CgogIHJldHVybiBkcCgwLCB0cnVlLCBmYWxzZSkuY2xhcHM7Cn0K