#include <iostream>

using namespace std;

struct Vector {
    double x;
    double y;
};

bool is_orth(double xa, double ya, double xb, double yb, double xc, double yc, double xd, double yd) {
    Vector ab = Vector{xb - xa, yb - ya};
    Vector cd = Vector{xd - xc, yd - yc};

    double inner_product = ab.x * cd.x + ab.y * cd.y;
    return inner_product == 0;
}

int main() {
    double xa, ya, xb, yb, xc, yc, xd, yd;
    string result;
    while (scanf("%lf %lf %lf %lf %lf %lf %lf %lf",&xa,&ya,&xb,&yb,&xc,&yc,&xd,&yd) == 8) {
        if(is_orth(xa, ya, xb, yb, xc, yc, xd, yd)) {
            result = "YES";
        } else {
            result = "NO";
        }
        cout << result << endl;
    }
    return 0;
}