#include <iostream>
using namespace std;

// 核心目标是X==Y,给出了对XY可以进行的两种操作选择,那么不妨进行逆向推理,X=Y之前的状态是什么?
//我们不妨拿出草稿纸写几个例子推理一番,得到以下结论:
// 1、X,Y=0 -> 一次变换得相等
// 2、X=0,Y -> 交换加变换得相等
// 3、X+Y=0 -> 变换出0,再来交换加变换得相等
// 4、其他情况并不能进入前三种情况的“斩杀线”,因为它们无论怎么进行“变换操作”,始终变不出X或者Y为0,
//因此就无法变出X=Y

int main() {
    int x,y;
    cin >> x >> y;
    if (x == y) {
        cout << 0;
    }
    else if (y == 0 ) {
        cout << 1;
    }
    else if (x == 0) {
        cout << 2;
    }
    else if (x == -y) {
        cout << 3;
    }
    else {
        cout << -1;
    }

}
// 64 位输出请用 printf("%lld")