#include #include #include #define rep(i,a) for(int i=0;i<(a);++i) int gcd( int a, int b ) { return b?gcd(b,a%b):a; } int extgcd( int a, int b, int &x, int &y ) { int d = a; if( b ) { d = extgcd( b, a%b, y, x ); y -= a/b*x; } else x = 1, y = 0; return d; } int main() { int Q; scanf( "%d", &Q ); while( Q-- ) { int W, H, D, Mx, My, Hx, Hy, Vx, Vy; scanf( "%d%d%d%d%d%d%d%d%d", &W, &H, &D, &Mx, &My, &Hx, &Hy, &Vx, &Vy ); while( Vx < 0 || Vy < 0 ) { int t; std::swap(W,H); t=Mx, Mx=-My, My=t; t=Hx, Hx=-Hy, Hy=t; t=Vx, Vx=-Vy, Vy=t; } bool fl = false; rep( i, 4 ) { int xs = i&1?Mx+2*(W-Mx):Mx, ys = i>=2?My+2*(H-My):My; int a = 2*W*Vy, b = 2*H*Vx, c = Vx*(ys-Hy)-Vy*(xs-Hx); int g = gcd(a,b); if( c % g ) continue; a /= g, b /= g; c /= g; int alpha, beta; extgcd( a, b, alpha, beta ); int k = std::max( 2*W*b?(int)ceil((Hx-xs-2*W*c*alpha)/(2.0*W*b)):0, 2*H*a?(int)ceil((Hy-ys+2.0*H*c*beta)/(2.0*H*a)):0 ); if( (Vx?(xs+2*W*(b*k+c*alpha))/Vx:(ys+2*H*(a*k-c*beta))/Vy) <= D ) { fl = true; break; } } puts( fl?"Hit":"Miss" ); } return 0; }