#include <stdio.h>
#include <stdlib.h>
#include <math.h>
unsigned long long int Reduce(unsigned long long int X ,unsigned long long int Y)
{
    unsigned long long int Exp,Len;
    Len=X>Y?X:Y;
    Exp=(unsigned long long int)pow(2,ceill(log2(Len)));
    if      (X==1&&Y==1)
    {
        return 1;
    }
    else if (X>Exp/2&&Y>Exp/2)
    {
        return (Exp*Exp/4)+Reduce(X-Exp/2,Y-Exp/2);
    }
    else if (X>Exp/2&&Y<=Exp/2)
    {
        return 2*(Exp*Exp/4)+Reduce(X-Exp/2,Y);
    }
    else if (X<=Exp/2&&Y>Exp/2)
    {
        return 3*(Exp*Exp/4)+Reduce(X,Y-Exp/2);
    }
}
int main()
{
    unsigned long long int I,J;
    scanf("%llu%llu",&I,&J);
    printf("%llu\n",Reduce(J,I));
    return 0;
}
