#include <iostream>

using namespace std;

template <typename T>
struct Vector2
{
// variable
public:
	T x;
	T y;

// structor
public:
	Vector2(const Vector2& other) :
		x(other.x),
		y(other.y)
	{

	}

	Vector2(T x = 0, T y = 0) :
		x(x),
		y(y)
	{

	}

// operator
public:
	Vector2 operator-(const Vector2<T>& rhs) const
	{
		return Vector2(x - rhs.x, y - rhs.y);
	}

	Vector2& operator=(const Vector2<T>& rhs)
	{
		x = rhs.x;
		y = rhs.y;
		return *this;
	}
};

template <typename T>
ostream& operator<< (ostream& stream, const Vector2<T>& rhs)
{
	stream << '(' << rhs.x << ", " << rhs.y << ')';
	return stream;
}

template <typename T>
istream& operator>> (istream& stream, Vector2<T>& rhs)
{
	stream >> rhs.x >> rhs.y;
	return stream;
}

template <typename T>
int relation(const Vector2<T>& p1, const Vector2<T>& p2)
{
	T product = p1.x * p2.y - p1.y * p2.x;
		
	return
		product == 0 ? 0 : (product > 0 ? 1 : -1);
}

int main()
{
	Vector2<double> a, b, c, p;
	while(cin >> a >> b >> c >> p)
	{
		if
		(
			(relation(b-a, b-p) > 0 && relation(c-b, b-p) > 0 && relation(a-c, a-p) > 0) &&
			(relation(b-a, b-p) <= 0 && relation(c-b, b-p) <= 0 && relation(a-c, a-p) <= 0) 
		)
			cout << "YES" << endl;
		else
			cout << "NO" << endl;
	}
	return 0;
}