#include<bits/stdc++.h> usingnamespacestd; using ll = longlong;
int n, m; int a[10]; int dp[10][2];
ll dfs(int pos, int pre, int sta, bool limit){ if (pos == -1) return1; if (!limit && dp[pos][sta] != -1) return dp[pos][sta]; int up = limit ? a[pos] : 9; ll ans = 0; for (int i = 0; i <= up; i++) { if (i == 4 || (pre == 6 && i == 2)) continue; ans += dfs(pos - 1, i, i == 6, limit && i == a[pos]); } if (!limit) dp[pos][sta] = ans; return ans; }
ll solve(int x){ int cnt = 0; while (x) { a[cnt++] = x % 10; x /= 10; } return dfs(cnt - 1, -1, 0, 1); }
intmain(){ memset(dp, -1, sizeof dp); while (cin >> n >> m && (n || m)) { cout << solve(m) - solve(n - 1) << '\n'; }