import scala.io.{StdIn => in}

object Main extends App {
  val Array(a, b) = in.readLine.split(" ").map(_.toLong)

  def calc(n:Long):Long = {
    val num = n + 1  // 0から数えるので -> 0が１個目
    var ret = 0L
    // i桁目の1の偶奇を調べる
    for(i <- 0 until 40) {
      // 0桁目 -> cycle 2 (0 1 0 1 0 1 0 1)
      // 1桁目 -> cycle 4 (0 0 1 1 0 0 1 1)
      val cycle = 1L << (i+1)
      // cycleCnt は num を cycle した回数 × cycle/2回 1が出現する
      // ＋ cycle整数回の余り
      var cycleCnt = (num / cycle) * (cycle / 2)
      // 0 0 1 1 の cycle=4 の時 余が 0 0 1の場合(余3) 2(<-4/2※cycle/2)を引くと 1 の個数が分かる
      // 余が 0 の場合(余1) に 2を引くと -1 になるため、その時は 0 にする
      var rem =  math.max(0L, (num % cycle) - (cycle / 2))

      debug(i+1, num, cycle, cycleCnt, "=", num/cycle, "*", cycle/2, "+", rem)

      cycleCnt += rem

      // i桁目が奇数(1になる)時は加算する
      if(cycleCnt % 2 == 1) ret += 1L << i
    }

    ret
  }

  // 0からbまでのXORした結果から0からa-1までの結果を引くとaからbまでの結果になる
  // ex) 4~12 までの足し算は 0~12 - 0~3 と同じ(XORでも同じ)
  val ans = calc(b) ^ calc(a-1)
  println(ans)

  def debug(any:Any*):Unit = {
    if(this.getClass.toString == "class Main$") return
    println(any.mkString(" "))
  }
}