import std.stdio;
import std.algorithm;
import std.string;
import std.conv;
import std.math;

void main(){

    while(true){
	auto s = readln();
	if(stdin.eof()) break;
	auto t = split(s);
	real[] x,y;
	for(int i=0;i<4;i++){
	    x ~= to!real(t[2*i]);
	    y ~= to!real(t[2*i+1]);
	}
	real ax = to!real(t[0]) - to!real(t[2]);
	real ay = to!real(t[1]) - to!real(t[3]);
	real bx = to!real(t[4]) - to!real(t[6]);
	real by = to!real(t[5]) - to!real(t[7]);
	real m,m1;
	bool flg = false;
	if(ax==0){
	    real d1 = x[0] - x[2];
	    real d2 = x[0] - x[3];
	    if(d1*d2 <= 0) flg = true;
	}else if(bx==0){
	    real d1 = x[2] - x[0];
	    real d2 = x[2] - x[1];
	    if(d1*d2 <= 0) flg = true;
	}else{
	    m = ay/ax;
	    m1 = by/bx;
	    if(m*m1 == -1) flg = true;
	}

	if(flg) writeln("YES");
	else writeln("NO");
    }

}