#include<cstdio>
#include<algorithm>
using namespace std;
long long Get(long long a){
    int i;
    for(i=0;;i++){
        if((1ll<<i) > a)return (1ll<<i);
    }
}
long long Calc(long long A, long long B){
    if(A==0)return Get(B);
    long long M, t;
    M = Get(A);
    if(M > B)return Calc(A-M/2,B-M/2);
    if(M*2 <= B){
        while(M*2<=B)M*=2;
        t = Get(B-M);
        return t + M-A + min(M-t, M-A);
    }
    t = Get(B-M);
    return t + M-A + min(M-t,M-A);
}
int main(){
    long long A, B;
    scanf("%lld%lld",&A,&B);
    printf("%lld\n",Calc(A,B));
}