#include <cstdio>
using namespace std;

struct vec{ double x, y; };

#define inner(a, b) a.x * b.x + a.y * b.y

int main(){
	vec A, B, C, D;
	vec AB, CD;
	
	while(scanf("%lf%lf%lf%lf%lf%lf%lf%lf", &A.x, &A.y, &B.x, &B.y, &C.x, &C.y, &D.x, &D.y) != EOF){
		AB.x = B.x - A.x; AB.y = B.y - A.y;
		CD.x = D.x - C.x; CD.y = D.y - C.y;
		if(inner(AB, CD) == 0) printf("YES\n");
		else printf("NO\n");
	}
	
	return 0;
}