#include<stdio.h>
#define M 1000000+100
int mei[M];
int check(int n)
{
char s[100];
sprintf(s,"%d",n); // 将数字转化为 字符串格式
for(int i=0;s[i]!='\0';i++)
{
if(s[i]=='4') return 0;
if(s[i]=='6'&&s[i+1]=='2') return 0;
}
return 1;
}
void dabiao()
{
int i,j;
mei[0]=0;mei[1]=1;
for(i=2;i<M;i++)
{
if(check(i)) mei[i]=mei[i-1]+1;
else mei[i]=mei[i-1];
}
}
int main()
{
int n,m;
dabiao();
while(~scanf("%d%d",&n,&m)&&(n||m))
printf("%d\n",mei[m]-mei[n-1]);
return 0;
}
#define M 1000000+100
int mei[M];
int check(int n)
{
char s[100];
sprintf(s,"%d",n); // 将数字转化为 字符串格式
for(int i=0;s[i]!='\0';i++)
{
if(s[i]=='4') return 0;
if(s[i]=='6'&&s[i+1]=='2') return 0;
}
return 1;
}
void dabiao()
{
int i,j;
mei[0]=0;mei[1]=1;
for(i=2;i<M;i++)
{
if(check(i)) mei[i]=mei[i-1]+1;
else mei[i]=mei[i-1];
}
}
int main()
{
int n,m;
dabiao();
while(~scanf("%d%d",&n,&m)&&(n||m))
printf("%d\n",mei[m]-mei[n-1]);
return 0;
}