#include <iostream>
using namespace std;
int n,m;
int f(int m){
    if(m>n) return 0;
    if(2*m>n && 2*m+1>n) return 1;
    return f(2*m)+f(2*m+1)+1;
}
int main() {
    //二叉树最后一个结点是n, 现输出以m为根的子树中含有的结点总数.
   while(cin>>m>>n){
       cout<<f(m)<<endl;
   }
   return 0;
}