#include <iostream>
#define llint long long

using namespace std;

llint A, B;

int main(void)
{
	cin >> A >> B;
	
	if(A == B){
		cout << 1 << endl;
		return 0;
	}
	
	llint h;
	for(llint i = 60; i >= 0; i--){
		if( (A&(1LL<<i)) && (B&(1LL<<i)) ){
			A -= (1LL<<i);
			B -= (1LL<<i);
		}
		else if( (A&(1LL<<i)) || (B&(1LL<<i)) ){
			h = i;
			break;
		}
	}
	B -= (1LL<<h);
	
	llint h2 = -1;
	for(llint i = 60; i >= 0; i--){
		if(B&(1LL<<i)){
			h2 = i;
			break;
		}
	}
	llint ub = (1LL<<(h2+1))-1;
	
	llint ans = (1LL<<(h+1))-1 - A + 1;
	llint gap = max(0LL, (A - ub - 1));
	ans -= gap;
	
	cout << ans << endl;
	return 0;
}