#include <iostream>
#include <algorithm>
#include <complex>
#include <cmath>
#include <string>
#include <sstream>
using namespace std;

typedef complex<double> P;

const double eps = 1e-10;
bool equals(double a, double b) { return fabs(a-b) < eps; }

double dot(P a, P b) { return a.real()*b.real() + a.imag()*b.imag(); }

bool isOrthogonal(P a1, P a2, P b1, P b2) {
  return equals(dot(a1-a2, b1-b2), 0.0);
}

int main() {
  string line;
  while(getline(cin, line)) {
    stringstream ss;
    ss << line;
    P p[4];
    for(int i = 0; i < 4; ++i) {
      ss >> p[i].real() >> p[i].imag();
    }
    cout << (isOrthogonal(p[0],p[1],p[2],p[3]) ? "YES" : "NO") << endl;
  }
  return 0;
}