#include<iostream> #include<cstdio> #include<cstring> using namespace std; int m,n; int p[15]; int f[15][3]; int w; int dfs(int pos,int s,int e) { if(pos==0) { if(s==0||s==1)return 1; else return 0; } if(e==0&&f[pos][s]!=-1)return f[pos][s]; int ans=0; if(e) { for(int i=0;i<=p[pos];i++) { int ss; if(s!=2&&i==6)ss=1; else if(s==2||i==4||(s==1&&i==2))ss=2; else ss=0; if(i!=p[pos])ans+=dfs(pos-1,ss,0); else ans+=dfs(pos-1,ss,1); } } else { for(int i=0;i<10;i++) { int ss; if(s!=2&&i==6)ss=1; else if(s==2||i==4||(s==1&&i==2))ss=2; else ss=0; ans+=dfs(pos-1,ss,0); } } if(!e)f[pos][s]=ans; return ans; } int func(int x) { memset(f,-1,sizeof(f)); int r=x; w=0; while(r) { p[++w]=r%10; r/=10; } return dfs(w,0,1); } int main() { while(scanf("%d%d",&m,&n)) { if(m==0&&n==0)break; if(m==0)cout<<func(n)<<endl; else cout<<func(n)-func(m-1)<<endl; } return 0; }