#include <stdio.h>
typedef struct pair{
	double x,y;
}pair;
double abs(double a){
	if(a<0) return -a;
	return a;
}

double naiseki(pair A,pair B,pair C,pair D){
	pair a,b;
	a.x=B.x-A.x;
	a.y=B.y-A.y;
	b.x=D.x-C.x;
	b.y=D.y-C.y;
	return a.x*b.x+a.y*b.y;
}
int main(){
	pair A,B,C,D;
	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)){
		if(naiseki(A,B,C,D)==0) printf("YES\n");
		else printf("NO\n");
	}
	return 0;
}