#include<stdio.h>
long long int n,m;
long long int a[10][10]={0},t[12]={0,1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000,10000000000};//a[i][j]表示开头是j的i位数
void dp()
{
int i,j,k,l;
for(i=0;i<10;i++)
a[1][i]=1;
a[1][4]=0;
for(i=2;i<9;i++)
{
for(j=0;j<10;j++)
{
if(j==4) continue;
for(k=0;k<10;k++)
{
if((j==6)&&(k==2)) continue;
else a[i][j]+=a[i-1][k];
}
}
}
}
long long int find(long long int n)
{
long long int ans=0;
int i,j,k=0,l,num,last;
while(n>=t[k]) k++;
k--;
for(i=1;i<k;i++)
{
for(j=1;j<10;j++)
{
ans+=a[i][j];
}
}
num=n/t[k];
for(i=1;i<num;i++)
{
if(i==4) continue;
else ans+=a[k][i];
}
n%=t[k];
last=num;
if(num!=4)
{
for(i=k-1;i>0;i--)
{
num=n/t[i];
for(j=0;j<num;j++)
{
if((last==6)&&(j==2)) continue;
else if(j==4) continue;
else ans+=a[i][j];
}
if((last==6)&&(num==2)) break;
if(num==4) break;
last=num;
n%=t[i];
}
}
return ans;
}
int main()
{
dp();
int i,j,k,l;
while(scanf("%lld %lld",&n,&m)!=EOF)
{
if((n==0)&&(m==0)) break;
printf("%lld\n",find(m+1)-find(n));
}
}