def f(A, B):
    assert A <= B
    if A % 2 == 0 and B % 2 == 1:
        return ((B - A + 1) // 2) % 2
    if A % 2 == 0 and B % 2 == 0:
        return (((B - A) // 2) % 2) ^ B
    if A % 2 == 1 and B % 2 == 1:
        return A ^ (((B - A) // 2) % 2)
    if A % 2 == 1 and B % 2 == 0:
        return A ^ (((B - A - 1) // 2) % 2) ^ B


def main():
    A, B = list(map(int, input().split(' ')))
    print(f(A, B))


if __name__ == '__main__':
    main() def f(A, B):
    assert A <= B
    if A % 2 == 0 and B % 2 == 1:
        return ((B - A + 1) // 2) % 2
    if A % 2 == 0 and B % 2 == 0:
        return (((B - A) // 2) % 2) ^ B
    if A % 2 == 1 and B % 2 == 1:
        return A ^ (((B - A) // 2) % 2)
    if A % 2 == 1 and B % 2 == 0:
        return A ^ (((B - A - 1) // 2) % 2) ^ B f assert A <= B A <= B A B if A % 2 == 0 and B % 2 == 1:
        return ((B - A + 1) // 2) % 2
     A % 2 == 0 and B % 2 == 1 A % 2 == 0 A % 2 A 2 0 B % 2 == 1 B % 2 B 2 1 return ((B - A + 1) // 2) % 2 ((B - A + 1) // 2) % 2 (B - A + 1) // 2 B - A + 1 B - A B A 1 2 2 if A % 2 == 0 and B % 2 == 0:
        return (((B - A) // 2) % 2) ^ B
     A % 2 == 0 and B % 2 == 0 A % 2 == 0 A % 2 A 2 0 B % 2 == 0 B % 2 B 2 0 return (((B - A) // 2) % 2) ^ B (((B - A) // 2) % 2) ^ B ((B - A) // 2) % 2 (B - A) // 2 B - A B A 2 2 B if A % 2 == 1 and B % 2 == 1:
        return A ^ (((B - A) // 2) % 2)
     A % 2 == 1 and B % 2 == 1 A % 2 == 1 A % 2 A 2 1 B % 2 == 1 B % 2 B 2 1 return A ^ (((B - A) // 2) % 2) A ^ (((B - A) // 2) % 2) A ((B - A) // 2) % 2 (B - A) // 2 B - A B A 2 2 if A % 2 == 1 and B % 2 == 0:
        return A ^ (((B - A - 1) // 2) % 2) ^ B A % 2 == 1 and B % 2 == 0 A % 2 == 1 A % 2 A 2 1 B % 2 == 0 B % 2 B 2 0 return A ^ (((B - A - 1) // 2) % 2) ^ B A ^ (((B - A - 1) // 2) % 2) ^ B A ^ (((B - A - 1) // 2) % 2) A ((B - A - 1) // 2) % 2 (B - A - 1) // 2 B - A - 1 B - A B A 1 2 2 B A A B B def main():
    A, B = list(map(int, input().split(' ')))
    print(f(A, B)) main A, B = list(map(int, input().split(' '))) A list(map(int, input().split(' '))) list map(int, input().split(' ')) map int input().split(' ') ().split () input split ' ' B print(f(A, B)) print f(A, B) f A B if __name__ == '__main__':
    main() __name__ == '__main__' __name__ '__main__' main() main def f(A, B):
    assert A <= B
    if A % 2 == 0 and B % 2 == 1:
        return ((B - A + 1) // 2) % 2
    if A % 2 == 0 and B % 2 == 0:
        return (((B - A) // 2) % 2) ^ B
    if A % 2 == 1 and B % 2 == 1:
        return A ^ (((B - A) // 2) % 2)
    if A % 2 == 1 and B % 2 == 0:
        return A ^ (((B - A - 1) // 2) % 2) ^ B def f(A, B):
    assert A <= B
    if A % 2 == 0 and B % 2 == 1:
        return ((B - A + 1) // 2) % 2
    if A % 2 == 0 and B % 2 == 0:
        return (((B - A) // 2) % 2) ^ B
    if A % 2 == 1 and B % 2 == 1:
        return A ^ (((B - A) // 2) % 2)
    if A % 2 == 1 and B % 2 == 0:
        return A ^ (((B - A - 1) // 2) % 2) ^ B f def main():
    A, B = list(map(int, input().split(' ')))
    print(f(A, B)) def main():
    A, B = list(map(int, input().split(' ')))
    print(f(A, B)) main
def f(A, B):
    assert A <= B
    if A % 2 == 0 and B % 2 == 1:
        return ((B - A + 1) // 2) % 2
    if A % 2 == 0 and B % 2 == 0:
        return (((B - A) // 2) % 2) ^ B
    if A % 2 == 1 and B % 2 == 1:
        return A ^ (((B - A) // 2) % 2)
    if A % 2 == 1 and B % 2 == 0:
        return A ^ (((B - A - 1) // 2) % 2) ^ B


def main():
    A, B = list(map(int, input().split(' ')))
    print(f(A, B))


if __name__ == '__main__':
    main()