#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
vector<int> digit;
vector<int> getDigit(ll n) {
vector<int> ans;
for (; n > 0; n /= 10) ans.push_back(n % 10);
return ans;
}
ll memo[16][2][10];
ll dp(int idx, bool smaller, int prev_digit) {
if (idx == -1) return 1;
ll& ans = memo[idx][smaller][prev_digit];
if (ans != -1 && smaller) return ans;
ans = 0;
int max_digit = (smaller) ? 9 : digit[idx];
for (int i = 0; i <= max_digit; i++) {
if (prev_digit == 1 && i == 3) continue;
ans += dp(idx - 1, smaller | (i < digit[idx]), i);
}
return ans;
}
ll solve(ll n) {
if (n < 0) return 0;
digit = getDigit(n);
return dp(digit.size() - 1, 0, 0);
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
ll A, B;
while (cin >> A >> B) {
memset(memo, -1, sizeof memo);
ll ans = solve(B) - solve(A - 1);
cout << ans << '\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgIAoKY29uc3QgaW50IElORiA9IDFlOTsgIApjb25zdCBsbCBMSU5GID0gMWUxODsgIAoKdmVjdG9yPGludD4gZGlnaXQ7ICAKCnZlY3RvcjxpbnQ+IGdldERpZ2l0KGxsIG4pIHsKCXZlY3RvcjxpbnQ+IGFuczsgCglmb3IgKDsgbiA+IDA7IG4gLz0gMTApIGFucy5wdXNoX2JhY2sobiAlIDEwKTsgCglyZXR1cm4gYW5zOyAKfQoKbGwgbWVtb1sxNl1bMl1bMTBdOwoKbGwgZHAoaW50IGlkeCwgYm9vbCBzbWFsbGVyLCBpbnQgcHJldl9kaWdpdCkgewoJaWYgKGlkeCA9PSAtMSkgcmV0dXJuIDE7ICAKCglsbCYgYW5zID0gbWVtb1tpZHhdW3NtYWxsZXJdW3ByZXZfZGlnaXRdOyAKCWlmIChhbnMgIT0gLTEgJiYgc21hbGxlcikgcmV0dXJuIGFuczsgCgoJYW5zID0gMDsgIAoJaW50IG1heF9kaWdpdCA9IChzbWFsbGVyKSA/IDkgOiBkaWdpdFtpZHhdOyAKCWZvciAoaW50IGkgPSAwOyBpIDw9IG1heF9kaWdpdDsgaSsrKSB7CgkJaWYgKHByZXZfZGlnaXQgPT0gMSAmJiBpID09IDMpIGNvbnRpbnVlOwoJCWFucyArPSBkcChpZHggLSAxLCBzbWFsbGVyIHwgKGkgPCBkaWdpdFtpZHhdKSwgaSk7IAoJfQoKCXJldHVybiBhbnM7IAp9CgpsbCBzb2x2ZShsbCBuKSB7CglpZiAobiA8IDApIHJldHVybiAwOyAKCWRpZ2l0ID0gZ2V0RGlnaXQobik7IAoJcmV0dXJuIGRwKGRpZ2l0LnNpemUoKSAtIDEsIDAsIDApOyAKfQoKaW50IG1haW4oKSB7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IAoJY2luLnRpZShudWxscHRyKTsgCQoJbGwgQSwgQjsgCgl3aGlsZSAoY2luID4+IEEgPj4gQikgeyAKCQltZW1zZXQobWVtbywgLTEsIHNpemVvZiBtZW1vKTsgCgkJbGwgYW5zID0gc29sdmUoQikgLSBzb2x2ZShBIC0gMSk7IAoJCWNvdXQgPDwgYW5zIDw8ICdcbic7IAkKCX0KfQo=