#include<iostream>
#include<iomanip>
#include<vector>
#include<queue>
#include<list>
#include<stack>
#include<algorithm>
#include<cmath>
#include<memory>
// #include<array>

using namespace std;

class Vector
{
public:
  double x;
  double y;
  Vector(){}
  Vector( double x, double y ) : x(x), y(y) {}
  Vector operator-( const Vector v );
};

Vector Vector::operator-( const Vector v )
{
  return Vector( x - v.x, y - v.y );
}

double dot( Vector a, Vector b )
{
  return a.x * b.x + a.y * b.y;
}

double cross( Vector a, Vector b )
{
  return a.x * b.y - a.y * b.x;
}

int main()
{
  const double eps = 1e-10;

  Vector a, b, c, d;
  
  while ( cin >> a.x >> a.y >> b.x >> b.y >> c.x >> c.y >> d.x >> d.y )
    {
      if ( dot( b - a, d - c) < eps )
        cout << "YES" << endl;
      else
        cout << "NO" << endl;
    }
  
  return 0;
}