#include<cstdio>
#define ull unsigned long long
using namespace std;
ull dp[21][10][1025][33];
ull pow[20];
int is(ull o,int powo)
{
    for(int i=0;i<10;i++)
    {
        int cnt=0;
        for(int j=0;j<=powo;j++)
            if(((o/pow[j])%10)==i) cnt++;
        if(cnt) if((cnt&1)==(i&1)) return 0;
    }
    return 1;
}
int main()
{
    ull a,b;
    pow[0]=1;
    scanf("%llu %llu",&a,&b);
    a--;
    int powa=0,powb=0;
    for(int i=1;i<20;i++)
    {
        pow[i]=pow[i-1]*10;
      //  printf("%llu\n",pow[i]);
        if(!powa)
        if(a/pow[i]<10) powa=i;
        if(!powb)
        if(b/pow[i]<10) powb=i;
    }
  //  printf("asdasd");
    int tbit;
   // dp[0][1][0]=1;
    int t2bit;
    for(int i=1;i<=powb+1;i++)
    {
        for(int j=0;j<10;j++)
        {

            tbit=(1<<(j));
            if((j&1)==0) t2bit=(1<<(j/2)); else t2bit=0;
            if(i==1) {dp[i][j][tbit][t2bit]=1; continue;}
            for(int ii=0;ii<10;ii++)
            for(int bb=0;bb<1024;bb++)
            for(int tt=0;tt<32;tt++)
                dp[i][j][tbit^bb][t2bit|tt]+=dp[i-1][ii][bb][tt];
        }
    }
    ull tot1=0, tot2=0;
    int bp;
    for(int kk=1;kk<=powb;kk++)
    for(int i=1;i<10;i++)
    for(int j=0;j<1024;j++)
    for(int t=0;t<32;t++)
    {
        bp=0;
        for(int k=1;k<=9;k+=2)
        if((j&(1<<k))>0){bp=1; break;}


        for(int k=0;k<=9;k+=2)
        if((t&(1<<(k/2)))>0)
        if((j&(1<<k))==0){bp=1; break;}
         if(bp) continue;
     //    printf("asd\n");
        tot1+=dp[kk][i][j][t];
    }
    tbit=0;
    int tbit2=0;
    for(int kk=powb;kk>0;kk--)
    {
        int r=(b/pow[kk])%10;
        for(int i=(kk==powb);i<r;i++)
        for(int j=0;j<1024;j++)
        for(int t=0;t<32;t++)
        {
            bp=0;
            for(int k=1;k<=9;k+=2)
            if(((j^tbit)&(1<<k))>0){bp=1; break;}


            for(int k=0;k<=9;k+=2)
            if(((t|tbit2)&(1<<(k/2)))>0)
            if(((j^tbit)&(1<<k))==0){bp=1; break;}
            if(bp) continue;
        //    printf("asd\n");
            tot2+=dp[kk+1][i][j][t];
        }
        if(r==0) break;
        tbit^=(1<<r);
        if((r&1)==0)
        tbit2|=(1<<(r/2));
    }
    ull tot3=tot1+tot2+is(b,powb),tot4;
    tot1=0;tot2=0;
    if(a)
    for(int kk=1;kk<=powa;kk++)
    for(int i=1;i<10;i++)
    for(int j=0;j<1024;j++)
    for(int t=0;t<32;t++)
    {
        bp=0;
        for(int k=1;k<=9;k+=2)
        if((j&(1<<k))>0){bp=1; break;}


        for(int k=0;k<=9;k+=2)
        if((t&(1<<(k/2)))>0)
        if((j&(1<<k))==0){bp=1; break;}
         if(bp) continue;
     //    printf("asd\n");
        tot1+=dp[kk][i][j][t];
    }
    tbit=0;
    tbit2=0;
    for(int kk=powa;kk>0;kk--)
    {
        int r=(a/pow[kk])%10;
        if(r==0) break;

        for(int i=(kk==powa);i<10;i++)
        for(int j=0;j<1024;j++)
        for(int t=0;t<32;t++)
        {
            bp=0;
            for(int k=1;k<=9;k+=2)
            if(((j^tbit)&(1<<k))>0){bp=1; break;}


            for(int k=0;k<=9;k+=2)
            if(((t|tbit2)&(1<<(k/2)))>0)
            if(((j^tbit)&(1<<k))==0){bp=1; break;}
            if(bp) continue;
        //    printf("asd\n");
            tot2+=dp[kk+1][i][j][t];
        }
        tbit^=(1<<r);
        if((r&1)==0)
        tbit2|=(1<<(r/2));
    }
    printf("%llu\n",tot3-tot2-tot1-is(a,powa));
}
