#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#define maxn 1000010
using namespace std;
int dp[12][3];
//dp[i][0],表示不存在不吉利数字
//dp[i][1],表示不存在不吉利数字,且最高位为2
//dp[i][2],表示存在不吉利数字
void init()
{
memset(dp,0,sizeof(dp));
dp[0][0]=1;
for(int i=1;i<=9;i++)
{
dp[i][0]=dp[i-1][0]*9-dp[i-1][1];
dp[i][1]=dp[i-1][0];
dp[i][2]=dp[i-1][1]+dp[i-1][2]*10+dp[i-1][0];
}
}
int solve(int n)
{
int i,len = 0,a[12],flag = 0,ans = 0,tem=n;
while(n)
{
a[++len] = n%10;
n/=10;
}
a[len+1]=0;
for(i=len;i;i--)
{
ans+=dp[i-1][2]*a[i];
if(flag)
{
ans+=dp[i-1][0]*a[i];
}
if(!flag&&a[i]>4)
{
ans+=dp[i-1][0];
}
if(!flag&&a[i+1]==6&&a[i]>2)
{
ans+=dp[i][1];
}
if(!flag && a[i]>6)
ans+=dp[i-1][1];
if((a[i+1]==6&&a[i]==2)||a[i]==4)flag=1;
}
return tem-ans;
}
int main()
{
init();
int t;
int a,b;
while(cin>>a>>b)
{
if(a==0&&b==0)break;
cout<<solve(b+1)-solve(a)<<endl;
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
#define pb push_back
int sum[1000009];
void init()
{
sum[1]=1;
int tmp,last;
for(int i=2;i<=1000000;i++)
{
tmp=i;
last=0;
sum[i]=sum[i-1]+1;
while(tmp)
{
if(tmp%10==4){sum[i]=sum[i-1];break;}
if(tmp%10==6&&last==2){sum[i]=sum[i-1];break;}
last=tmp%10;
tmp/=10;
}
}
}
int main()
{
//freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
//ios::sync_with_stdio(false);
int n,m;
init();
while(~scanf("%d%d",&n,&m)&&n)
{
if(n==0&&m==0)break;
printf("%d\n",sum[m]-sum[n-1]);
}
return 0;
}