#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int a[12];
long long f[12][2][10][10][2][2][2];
long long n,m;
long long dfs(int u,bool limit,int next,int nexx,bool ok,bool is4,bool is8){
if(is4&&is8)
return 0;
if(u==0)
return ok;
if(f[u][limit][next][nexx][ok][is4][is8]!=-1)
return f[u][limit][next][nexx][ok][is4][is8];
int t=limit?a[u]:9,k=(u==11)?1:0;
long long r=0;
for(int i=k;i<=t;i++)
r+=dfs(u-1,limit&&(i==a[u]),i,next,ok||(i==nexx&&i==next),is4||(i==4),is8||(i==8));
f[u][limit][next][nexx][ok][is4][is8]=r;
return r;
}
long long s(long long x){
if(x==10000000000)
return 0;
int l=0;
memset(f,-1,sizeof f);
while(x){
a[++l]=x%10;
x/=10;
}
return dfs(l,1,0,0,0,0,0);
}
int main(){
scanf("%lld%lld",&n,&m);
printf("%lld",s(m)-s(n-1));
return 0;
}
1,4,5点不过