#include <iostream> #define Ni 50 using namespace std; int c[Ni][Ni]; int big[Ni]; int C(int n,int m)//c(n,m)=c(n-1,m)+c(n-1,m-1) { if(c[n][m]!=-1) return c[n][m]; if(n<m) return 0; if(n==m) return 1; c[n-1][m]=C(n-1,m); c[n-1][m-1]=C(n-1,m-1); return c[n][m]=c[n-1][m]+c[n-1][m-1]; } void Init() { int i,j,n; memset(c,-1,sizeof(c)); n=34; for(i=0;i<n;i++) for(j=0;j<=n;j++) C(i,j); } int cacu(int n) { int ans=0,m=n,t=0; int i,j; while(m) {m=(m>>1);t++;} for(i=t-2;i>=1;i--) { for(j=i;j>i/2;j--) ans+=c[i][j]; } int num0=0; for(i=t-2;i>=0;i--) { if( (n&(1<<i)) ) { for(j=(t+1)/2-num0-1;j<=i;j++) ans+=c[i][j]; } else { num0++; } }//cout<<ans<<endl; return ans; } int main() { int l,r,ansl,ansr; Init(); while(cin>>l>>r) { ansl=cacu(l); ansr=cacu(r+1); cout<<ansr-ansl<<endl; } return 0; }