#include <cstdio>
#include <cmath>
#define EPS 1e-10
struct vektor{
	double x,y;
	vektor(){}
	vektor(double xx,double yy){
		x=xx;
		y=yy;
	}
	double add(double a,double b){
		if(fabs(a+b)<EPS*(fabs(a)+fabs(b)))return 0;
		return a+b;
	}
	vektor operator +(vektor v){
		return vektor(x+v.x,y+v.y);
	}

	vektor operator -(vektor v){
		return vektor(x-v.x,y-v.y);
	}
	vektor operator *(double d){
		return vektor(x*d,y*d);
	}
	double dot(vektor v){
		return add(x*v.x,y*v.y);
	}
	double det(vektor v){
		return add(x*v.y,-y*v.x);
	}
};

bool on_seg(vektor p1,vektor p2,vektor q){
	return fabs((p1-q).det(p2-q))==0 && (p1-q).dot(p2-q)<=0;
}
vektor intersection(vektor p1,vektor p2,vektor q1,vektor q2){
	return p1+(p2-p1)*((q2-q1).det(q1-p1)/(q2-q1).det(p2-p1));
}

int n;
vektor vek[5];

bool check(){
	vektor v[5];
	for(int i=1;i<=4;i++){
		v[i]=vek[i]-vek[0];
	}
	double s=(v[3].x*v[2].y-v[3].y*v[2].x)/(v[1].x*v[2].y-v[1].y*v[2].x);
	double t=(v[3].x*v[1].y-v[3].y*v[1].x)/(v[1].y*v[2].x-v[1].x*v[2].y);
	int data3,data4;
	if(s>0 && t>0 && s+t<1)data3=1;
	else data3=-1;
	s=(v[4].x*v[2].y-v[4].y*v[2].x)/(v[1].x*v[2].y-v[1].y*v[2].x);
	t=(v[4].x*v[1].y-v[4].y*v[1].x)/(v[1].y*v[2].x-v[1].x*v[2].y);
	if(s>0 && t>0 && s+t<1)data4=1;
	else data4=-1;
	return data3*data4<0;
}

int main(void){
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		for(int j=0;j<5;j++){
			scanf("%lf %lf",&vek[j].x,&vek[j].y);
		}
		bool flag=check();
		printf("%s\n",flag?"OK":"NG");
	}
	return 0;
}