#!/usr/bin/env python3
a, b = map(int, input().split())
"""
bit ごとにみる
b-a = even and a%2 == 0 => 1
else: 0

（0 ~ b madeno 個数）－　（0 ~ a-1 madeno 個数）
1の位は (b+1)/2
10の位は (b+1)/4 + max((b+1)%4-2,0)
100の位
"""

ans = 0
# 0からbまでのxor
if b % 2 == 1:
    ans = (b + 1) // 2 % 2
else:
    ans = b ^ (b // 2 % 2)

# 0からa-1までのxorを掛ける
if a == 0:
    print(ans)
else:
    tmp = 0
    if (a - 1) % 2 == 1:
        tmp = a // 2 % 2
    else:
        tmp = (a - 1) ^ ((a - 1) // 2 % 2)
    ans = ans ^ tmp
    print(ans) a, b = map(int, input().split()) a map(int, input().split()) map int input().split() ().split () input split b """
bit ごとにみる
b-a = even and a%2 == 0 => 1
else: 0

（0 ~ b madeno 個数）－　（0 ~ a-1 madeno 個数）
1の位は (b+1)/2
10の位は (b+1)/4 + max((b+1)%4-2,0)
100の位
""" ans = 0 ans 0 if b % 2 == 1:
    ans = (b + 1) // 2 % 2
else:
    ans = b ^ (b // 2 % 2)

# 0からa-1までのxorを掛ける b % 2 == 1 b % 2 b 2 1 ans = (b + 1) // 2 % 2 ans (b + 1) // 2 % 2 (b + 1) // 2 b + 1 b 1 2 2 ans = b ^ (b // 2 % 2) ans b ^ (b // 2 % 2) b b // 2 % 2 b // 2 b 2 2 if a == 0:
    print(ans)
else:
    tmp = 0
    if (a - 1) % 2 == 1:
        tmp = a // 2 % 2
    else:
        tmp = (a - 1) ^ ((a - 1) // 2 % 2)
    ans = ans ^ tmp
    print(ans) a == 0 a 0 print(ans) print ans tmp = 0 tmp 0 if (a - 1) % 2 == 1:
        tmp = a // 2 % 2
    else:
        tmp = (a - 1) ^ ((a - 1) // 2 % 2)
     (a - 1) % 2 == 1 (a - 1) % 2 a - 1 a 1 2 1 tmp = a // 2 % 2 tmp a // 2 % 2 a // 2 a 2 2 tmp = (a - 1) ^ ((a - 1) // 2 % 2) tmp (a - 1) ^ ((a - 1) // 2 % 2) a - 1 a 1 (a - 1) // 2 % 2 (a - 1) // 2 a - 1 a 1 2 2 ans = ans ^ tmp ans ans ^ tmp ans tmp print(ans) print ans ans = b ^ (b // 2 % 2) b ^ (b // 2 % 2) ans tmp = (a - 1) ^ ((a - 1) // 2 % 2) (a - 1) ^ ((a - 1) // 2 % 2) tmp tmp = a // 2 % 2 a // 2 % 2 tmp ans = (b + 1) // 2 % 2 (b + 1) // 2 % 2 ans tmp = 0 0 tmp ans = ans ^ tmp ans ^ tmp ans a, b = map(int, input().split()) map(int, input().split()) a b = map(int, input().split()) map(int, input().split()) b ans = 0 0 ans
#!/usr/bin/env python3
a, b = map(int, input().split())
"""
bit ごとにみる
b-a = even and a%2 == 0 => 1
else: 0

（0 ~ b madeno 個数）－　（0 ~ a-1 madeno 個数）
1の位は (b+1)/2
10の位は (b+1)/4 + max((b+1)%4-2,0)
100の位
"""

ans = 0
# 0からbまでのxor
if b % 2 == 1:
    ans = (b + 1) // 2 % 2
else:
    ans = b ^ (b // 2 % 2)

# 0からa-1までのxorを掛ける
if a == 0:
    print(ans)
else:
    tmp = 0
    if (a - 1) % 2 == 1:
        tmp = a // 2 % 2
    else:
        tmp = (a - 1) ^ ((a - 1) // 2 % 2)
    ans = ans ^ tmp
    print(ans)
