Problem: Arpa is taking a geometry exam. Here is the last problem of the exam.

You are given three points a, b, c.

Find a point and an angle such that if we rotate the page around the point by the angle, the new position of a is the same as the old position of b, and the new position of b is the same as the old position of c.

Arpa is doubting if the problem has a solution or not (i.e. if there exists a point and an angle satisfying the condition). Help Arpa determine if the question has a solution or not.

Input

The only line contains six integers ax, ay, bx, by, cx, cy (|ax|, |ay|, |bx|, |by|, |cx|, |cy| ≤ 109). It's guaranteed that the points are distinct.

Output

Print "Yes" if the problem has a solution, "No" otherwise.

You can print each letter in any case (upper or lower).

Examples

Input

0 1 1 1 1 0


Output

Yes


Input

1 1 0 0 1000 1000


Output

No

Note

In the first sample test, rotate the page around (0.5, 0.5) by <image>.

In the second sample test, you can't find any solution.

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
long long readin() {
  long long x = 0, f = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = x * 10 + ch - '0';
    ch = getchar();
  }
  return x * f;
}
using namespace std;
int main() {
  long long i, j;
  long long n;
  long long a1 = readin(), a2 = readin(), b1 = readin(), b2 = readin(),
            c1 = readin(), c2 = readin();
  long long guapi1, guapi2, guapi3, guapi4;
  guapi1 = b1 - a1;
  guapi2 = b2 - a2;
  guapi3 = c1 - b1;
  guapi4 = c2 - b2;
  if (guapi2 == guapi4 && guapi1 == guapi3) {
    cout << "NO";
    return 0;
  }
  if ((guapi1 * guapi1 + guapi2 * guapi2) ==
      (guapi3 * guapi3 + guapi4 * guapi4)) {
    cout << "YES";
  } else
    cout << "NO";
}