def min_moves_to_goal(Gx, Gy): if Gx == 0 and Gy == 0: return 0 # ルークなら1手または2手で必ず行ける if Gx == 0 or Gy == 0: return 1 else: rook_moves = 2 # ビショップが1手で行ける条件 if Gx == Gy or Gx == -Gy: bishop_moves = 1 elif (Gx + Gy) % 2 == 0: bishop_moves = 2 # 色が同じマスには2手で行ける else: bishop_moves = float('inf') # 色が違うとビショップでは不可能 # 最小の手数を選ぶ return min(rook_moves, bishop_moves) # 入力と出力 Gx, Gy = map(int, input().split()) print(min_moves_to_goal(Gx, Gy))