#include<iostream>
#include<cstdio>
using namespace std;
int c[35][35];
void Init()
{
int i,j;
for(i=0;i<33;i++)
{
c[i][0]=c[i][i]=1;
for(j=1;j<i;j++)
c[i][j]=c[i-1][j]+c[i-1][j-1];
}
}
int slove(int n)
{
int len=0,bit[35],i,j,sum=0,one=1,zero=0;
while(n)
{
bit[++len]=n%2;
n/=2;
}
for(i=1;i<len;i++)
for(j=(i+1)/2;j<i;j++)
sum+=c[i-1][j];
for(i=len-1;i;i--)
if(bit[i])
{
zero++;
for(j=max(0,(len+1)/2-zero);j<i;j++)
sum+=c[i-1][j];
zero--;
one++;
}
else
zero++;
return sum;
}
int main()
{
int L,R;
Init();
while(scanf("%d%d",&L,&R)!=EOF)
printf( "%d\n",slove(R+1)-slove(L) );
return 0;
}