#include<stdio.h>
long long maxvalue (long long a,long long b)
{
int i = 62;
if(a >= b)
{
return 0;
}
while(i >= 0 && ((1ll << i) & b) == ((1ll << i) & a))
{
i--;
}
return (1ll << (i + 1)) - 1;
}
int main()
{
printf("%lld",maxvalue(0, 0));
}
long long maxvalue (long long a,long long b)
{
int i = 62;
if(a >= b)
{
return 0;
}
while(i >= 0 && ((1ll << i) & b) == ((1ll << i) & a))
{
i--;
}
return (1ll << (i + 1)) - 1;
}
int main()
{
printf("%lld",maxvalue(0, 0));
}