Gx, Gy = map(int, input().split()) # ルークの最小手数 if Gx == 0 or Gy == 0: rook_steps = 1 if (Gx, Gy) != (0, 0) else 0 else: rook_steps = 2 # ビショップの最小手数 if (Gx + Gy) % 2 != 0: bishop_steps = float('inf') # 行けない elif Gx == Gy or Gx == -Gy: bishop_steps = 1 if (Gx, Gy) != (0, 0) else 0 else: bishop_steps = 2 # 答え print(min(rook_steps, bishop_steps))