class Point
  attr_reader :x, :y

  def initialize(x, y)
    @x=x
    @y=y
  end

end

# 1次関数(2点標準形)
def linear(p1, p2)
  lambda { |p| (p2.y-p1.y)*(p.x-p1.x)-(p2.x-p1.x)*(p.y-p1.y) }
end

# 包含判定
def inner?(p, polygon)
  a=linear(polygon[0], polygon[1]).call(p)
  b=linear(polygon[1], polygon[2]).call(p)
  c=linear(polygon[2], polygon[0]).call(p)

  if a<0&&b<0&&c<0
    return true
  end

  if a>0&&b>0&&c>0
    return true
  end

  false

end

gets.to_i.times do

  ps = gets.split.map(&:to_f)

  p1=Point.new(ps[0], ps[1])
  p2=Point.new(ps[2], ps[3])
  p3=Point.new(ps[4], ps[5])
  pt=[p1, p2, p3]

  pa=Point.new(ps[6], ps[7]) # altair
  pv=Point.new(ps[8], ps[9]) # vega

  unless inner?(pv, pt)
    puts :NG
    next
  end

  if inner?(pa, pt)
    puts :NG
    next
  end

  puts :OK

end