思路:分类讨论,首先注意到操作1并不会改变x, y的值,所以说我们要使得x, y的值改变,得看操作2。因此,令操作2中的,得到,那当且仅当为0的时候成立。

由于我们操作1可以进行x, y的交换,所以说我们只需要考虑怎么得到0即可,有三种情况:1.原本里面就有0,那就不管,具体是x还是y,这个讨论一下即可;2.x == y,此时通过得到0,但此时x都和y相等了,那结果其实直接为0;3.x和y互为相反数,此时通过得到0,模拟一下可以发现,这种情况的操作数为3。最后,其他情况都不满足,输出-1即可

代码:

import sys
input = lambda: sys.stdin.readline().strip()

import math
inf = 10 ** 18

def I():
    return input()

def II():
    return int(input())

def MII():
    return map(int, input().split())

def GMI():
    return map(lambda x: int(x) - 1, input().split())

def LI():
    return input().split()

def LII():
    return list(map(int, input().split()))

def LFI():
    return list(map(float, input().split()))

fmax = lambda x, y: x if x > y else y
fmin = lambda x, y: x if x < y else y
isqrt = lambda x: int(math.sqrt(x))

'''

'''

def solve():
    x, y = MII()
    if x == y:
        print(0)
        return
    if y == 0:
        print(1)
        return
    if x == 0:
        print(2)
        return
    if x == -y or -x == y:
        print(3)
        return
    print(-1)

t = 1
# t = II()
for _ in range(t):
    solve()