#include<iostream>
#include<vector>

struct Point
{
    double x;
 
    double y;
};
 
double Abs(double x)
{
    return x>=0 ? x : -x;
}
 
double Triangle(const Point& P, const Point& Q, const Point& R)
{
    Point A = {Q.x-P.x, Q.y-P.y};
 
    Point B = {R.x-P.x, R.y-P.y};
 
    return Abs(A.x*B.y-A.y*B.x);
}

void SwapPoint(Point& a, Point& b)
{
	Point temp={0,0};

	temp =a;

	a=b;

	b=temp;
}

int main()
{
	Point a, b, c, x;

	bool flg=1;//点Xが三角形の中にある=1

	while(std::cin >> a.x >> a.y >> b.x >> b.y >> c.x >> c.y >> x.x >>x.y)
	{
		for(int i=0; i<3; ++i)
		{
			if(Triangle(a,b,c)<Triangle(a,b,x)+Triangle(b,c,x))
			{
				flg=0;
			}

			SwapPoint(c,a);
			
			SwapPoint(b,c);
		}

		std::cout << (flg ? "YES\n" : "No\n");	
	}
}