# encoding: utf-8

class Point
  attr_reader :x, :y
  def initialize(x = 0, y = 0)
    @x, @y = x, y
  end

  def + o
    Point.new(@x + o.x, @y + o.y)
  end

  def - o
    Point.new(@x - o.x, @y - o.y)
  end
end

class Vector
  attr_reader :a, :b

  def initialize(a = 0, b = 0)
    @a, @b = a, b
  end

  def + o
    Vector.new(@a + o.a, @b + o.b)
  end

  def - o
    Vector.new(@a - o.a, @b - o.b)
  end

  def cross o
    @a * o.b - @b * o.a
  end
end

def sign(x)
  x < 1e-6 ? -1 : (x > 1e-6 ? 1: 0)
end

def main
  while nums = gets
    nums = nums.split(/\s/).collect { |x| x.to_f}
    a = Point.new(nums[0], nums[1])
    b = Point.new(nums[2], nums[3])
    c = Point.new(nums[4], nums[5])
    p = Point.new(nums[-2], nums[-1])
    v1 = Vector.new(a.x - p.x, a.y - p.y)
    v2 = Vector.new(b.x - p.x, b.y - p.y)
    v3 = Vector.new(c.x - p.x, c.y - p.y)
    s1 = sign(v1.cross(v2))
    s2 = sign(v2.cross(v3))
    s3 = sign(v3.cross(v1))
    if s1 * s2 >= 0 and s2 * s3 >= 0 and s3 * s1 >= 0
      puts "YES"
    else
      puts "NO"
    end
  end
end

main