#include <iostream>
#include <cmath>
#include <complex>
#include <vector>

using namespace std;

const double EPS = 1e-10;

typedef complex<double> P;

double dot(const P& a, const P& b) {
  return real(conj(a)*b);
}
int main(){
    double xA,yA,xB,yB,xC,yC,xD,yD;
    while(cin>>xA>>yA>>xB>>yB>>xC>>yC>>xD>>yD){
        P ps[] = {P(xA,yA),P(xB,yB),P(xC,yC),P(xD,yD)};
        double d=dot(ps[0]-ps[1],ps[2]-ps[3]);
        cout<<(abs(d-0) < EPS ? "YES" : "NO")<<endl;
    }
}