#include<bits/stdc++.h>
using namespace std;
bool f(long long a)
{
for(int i=1;i<=63;i++)
{
if(a==pow(2,i))
{
return 0;
}
}
return 1;
}
long long f2(long long a)
{
long long aa=0;
for(int i=1;i<=63;i++)
{
if(pow(2,i)>a)
{
return aa;
}
else
{
aa=i;
}
if(a==pow(2,i))
{
return i;
}
}
return 63;
}
int main()
{
long long a,b,ans=0,ab,anss=0;
cin>>a>>b;
ab=max(a,b);
long long ba=min(a,b);
if(a==b&&f(a))
{
cout<<2;
return 0;
}
else if(a==b)
{
cout<<1;
return 0;
}
long long i=0;
while(anss<=ab)
{
if(anss+pow(2,i)<=ab)
{
anss+=pow(2,i);
ans++;
}
i++;
if(pow(2,i)>ab)
{
break;
}
}
long long ansss=0,ans2=0;
long long i2=f2(a);
if(anss>a) cout<<ans;
else
{
while(ansss<=ab||i2>0)
{
if(ansss+pow(2,i2)<=ab)
{
ansss+=pow(2,i2);
ans2++;
}
i2--;
if(i2<0)
{
break;
}
}
cout<<ans2;
return 0;
}
return 0;
}