# There is a special square room with mirrors on each of the four walls.  Except for the southwest corner,
# there are receptors on each of the remaining corners, numbered 0, 1, and 2.
#
# The square room has walls of length p, and a laser ray from the southwest corner first meets the east wall at a
# distance q from the 0th receptor.
#
# Return the number of the receptor that the ray meets first.  (It is guaranteed that the ray will meet a receptor
# eventually.)


# Note:
# 1 <= p <= 1000
# 0 <= q <= p


class Solution(object):
    def mirrorReflection(self, p, q):
        """
        :type p: int
        :type q: int
        :rtype: int
        """
        while not (p & 1) and not (q & 1):
            p, q = p >> 1, q >> 1

        if not (p & 1):
            return 2
        elif not (q & 1):
            return 0
        else:
            return 1
