import std.stdio;
import std.conv;
import std.string;
import std.typecons;
import std.algorithm;
import std.array;

alias Tuple!(double, "x", double, "y") Point;

void main()
{
  double[] input;
  while ((input = readln().split().map!(to!double)().array()).length != 0) {
    Point[3] p;
    foreach (i, j; [0, 2, 4]) {
      p[i].x = input[j];
      p[i].y = input[j + 1];
    }

    Point pp;
    pp.x = input[6];
    pp.y = input[7];

    if (cross(p[0], p[1], pp, p[2]) | 
        cross(p[1], p[2], pp, p[0]) | 
        cross(p[0], p[2], pp, p[1])) {
      writeln("NO");
    } else {
      writeln("YES");
    }
  }
}

bool cross(Point p1, Point p2, Point p3, Point p4)
{
  auto value = ((p1.x - p2.x) * (p3.y - p1.y) + (p1.y - p2.y) * (p1.x - p3.x)) *
               ((p1.x - p2.x) * (p4.y - p1.y) + (p1.y - p2.y) * (p1.x - p4.x));
  return (value < 0);
}