#include <bits/stdc++.h>

#define loop(v, f, l) for(int v = (f), v##_ = (l); v < v##_; ++v)

using namespace std;

typedef long long int lint;
static inline int in(){ int x; scanf("%d", &x); return (x); }
static inline lint inl(){ lint x; scanf("%lld", &x); return (x); }

typedef struct
{
	float x, y;
} point;

bool isOrthogonal(point A, point B, point C, point D)
{
	if( (-A.x + B.x) * (-C.x + D.x) + (-A.y + B.y) * (-C.y + D.y) == 0 )
	{
		return true;
	}
	return false;
}

int main()
{
	point A, B, C, D;
	
	while( scanf("%f%f%f%f%f%f%f%f", &A.x, &A.y, &B.x, &B.y, &C.x, &C.y, &D.x, &D.y) != EOF )
	{
		printf("%s\n", isOrthogonal(A, B, C, D) ? "YES" : "NO");
	}
	return (0);
}