"use strict"
function Main(input){
  input=input.trim().split(/\s+/).map(x=>x-0);
  var A=input[0], B=input[1];
  if(A>0){
    console.log(xor(XORsum(A-1),XORsum(B)));
    return;
  }else{
    console.log(XORsum(B));
  }
}

function zeroFill(str){
  return ("0000000000000000000000000000000000000000"+str).slice(-40)
}

function XORsum(x){//0から数値xまでのxorの総和を数値で返す。
  var result=0;
  result+=((x%4===1||x%4===2)?1:0);
  for(let i=1;i<39;i++){
    result+=((x%Math.pow(2,i+1)>=Math.pow(2,i)&&x%2===0)?Math.pow(2,i):0);
  }
  return result;
}

function xor(a,b){
  var A=zeroFill(a.toString(2)).split("").map(x=>x-0);
  var B=zeroFill(b.toString(2)).split("").map(x=>x-0);
  var C=A.map((x,i)=>(x+B[i])%2);
  return parseInt(C.join(""),2);
}

Main(require("fs").readFileSync("/dev/stdin","utf8"));
