import sys import math def extended_gcd(a, b): if a == 0: return (b, 0, 1) else: g, y, x = extended_gcd(b % a, a) return (g, x - (b // a) * y, y) def solve(): input = sys.stdin.read().split() idx = 0 Q = int(input[idx]) idx += 1 for _ in range(Q): W = int(input[idx]) H = int(input[idx+1]) D = int(input[idx+2]) Mx = int(input[idx+3]) My = int(input[idx+4]) Hx = int(input[idx+5]) Hy = int(input[idx+6]) Vx = int(input[idx+7]) Vy = int(input[idx+8]) idx += 9 hit = False for s_x in [1, -1]: for s_y in [1, -1]: if Vx == 0 and Vy == 0: continue if Vx == 0: numerator = Hx - s_x * Mx denominator = 2 * W if denominator == 0: continue if numerator % denominator != 0: continue a = numerator // denominator if Vy == 0: continue else: C = (s_y * My - Hy) * Vx - (s_x * Mx - Hx) * Vy A = 2 * W * Vy B = -2 * H * Vx G = math.gcd(A, B) if C % G != 0: continue A_prime = A // G B_prime = B // G C_prime = C // G g, x0, y0 = extended_gcd(A_prime, B_prime) if (C_prime % g) != 0: continue x0 *= (C_prime // g) y0 *= (C_prime // g) a0 = x0 b0 = y0 a_gen = a0 + B_prime * 0 b_gen = b0 - A_prime * 0 t = (s_x * Mx - Hx + a_gen * 2 * W) / Vx if Vx != 0 else (s_y * My - Hy + b_gen * 2 * H) / Vy if Vx == 0: t = (s_y * My - Hy + b_gen * 2 * H) / Vy if Vy == 0: t = (s_x * Mx - Hx + a_gen * 2 * W) / Vx if Vx == 0 and Vy == 0: continue if t > 0 and t <= D: hit = True break elif Vy == 0: numerator = Hy - s_y * My denominator = 2 * H if denominator == 0: continue if numerator % denominator != 0: continue b = numerator // denominator if Vx == 0: continue else: C = (s_y * My - Hy) * Vx - (s_x * Mx - Hx) * Vy A = 2 * W * Vy B = -2 * H * Vx G = math.gcd(A, B) if C % G != 0: continue A_prime = A // G B_prime = B // G C_prime = C // G g, x0, y0 = extended_gcd(A_prime, B_prime) if (C_prime % g) != 0: continue x0 *= (C_prime // g) y0 *= (C_prime // g) a0 = x0 b0 = y0 a_gen = a0 + B_prime * 0 b_gen = b0 - A_prime * 0 t = (s_x * Mx - Hx + a_gen * 2 * W) / Vx if Vx != 0 else (s_y * My - Hy + b_gen * 2 * H) / Vy if Vx == 0: t = (s_y * My - Hy + b_gen * 2 * H) / Vy if Vy == 0: t = (s_x * Mx - Hx + a_gen * 2 * W) / Vx if Vx == 0 and Vy == 0: continue if t > 0 and t <= D: hit = True break else: A = 2 * W * Vy B = -2 * H * Vx C = (s_y * My - Hy) * Vx - (s_x * Mx - Hx) * Vy G = math.gcd(A, B) if C % G != 0: continue A_prime = A // G B_prime = B // G C_prime = C // G g, x0, y0 = extended_gcd(A_prime, B_prime) if (C_prime % g) != 0: continue x0 *= (C_prime // g) y0 *= (C_prime // g) a0 = x0 b0 = y0 a_gen = a0 + B_prime * 0 b_gen = b0 - A_prime * 0 t = (s_x * Mx - Hx + a_gen * 2 * W) / Vx if Vy != 0: t_y = (s_y * My - Hy + b_gen * 2 * H) / Vy if abs(t - t_y) > 1e-9: continue if t > 0 and t <= D: hit = True break k_min = None k_max = None delta_a = B_prime delta_b = -A_prime if delta_a == 0 and delta_b == 0: continue if (A_prime == 0 and B_prime == 0): continue t = (s_x * Mx - Hx + a_gen * 2 * W) / Vx if Vy != 0: t_y = (s_y * My - Hy + b_gen * 2 * H) / Vy if abs(t - t_y) > 1e-9: continue if t > 0 and t <= D: hit = True break if delta_a != 0: a_prev = a_gen - delta_a t_prev = (s_x * Mx - Hx + a_prev * 2 * W) / Vx if t_prev <= t: k_min = 0 k_max = 1 else: k_min = -1 k_max = 0 else: k_min = -1 k_max = 0 for k in range(k_min, k_max + 1): a = a0 + B_prime * k b = b0 - A_prime * k t = (s_x * Mx - Hx + a * 2 * W) / Vx if Vy != 0: t_y = (s_y * My - Hy + b * 2 * H) / Vy if abs(t - t_y) > 1e-9: continue if t > 0 and t <= D: hit = True break if hit: break if hit: break if hit: print("Hit") else: print("Miss") if __name__ == '__main__': solve()