#include <iostream>
#include <iomanip>
#include <complex>
#include <vector>
#include <algorithm>
using namespace std;

const double EPS = 1e-10;
const double INF = 1e12;
#define EQ(n,m) (abs((n)-(m)) < EPS)
#define X real()
#define Y imag()

typedef complex<double> P;
typedef vector<P> VP;
double dot(P a, P b){
    return (conj(a)*b).X;
}

int main(){
	double x,y;
	while(cin >> x >> y){
		VP p(4);
		for(int i=0; i<4; i++){
			if(i!=0) cin >> x >> y;
			p[i] = P(x, y);
		}
		if(EQ(dot(p[1]-p[0], p[3]-p[2]), 0)){
			cout << "YES" << endl;
		}else{
			cout << "NO" << endl;
		}
	}
	return 0;
}
