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>
using namespace std;
const long long mod = 1000000000 + 7;
const double eps = 1e-9;
const int inf = 0x3f3f3f3f;
const long long infl = 10000000000000000;
const int maxn = 100000 + 10;
const int maxm = 200000 + 10;
int in(int &ret) {
  char c;
  int sgn;
  if (c = getchar(), c == EOF) return -1;
  while (c != '-' && (c < '0' || c > '9')) c = getchar();
  sgn = (c == '-') ? -1 : 1;
  ret = (c == '-') ? 0 : (c - '0');
  while (c = getchar(), c >= '0' && c <= '9') ret = ret * 10 + (c - '0');
  ret *= sgn;
  return 1;
}
long long dis(int x1, int y1, int x2, int y2) {
  long long x = 1.0 * x1 - x2;
  long long y = 1.0 * y1 - y2;
  return x * x + y * y;
}
int main() {
  int x1, y1, x2, y2, x3, y3;
  scanf("%d%d", &x1, &y1);
  scanf("%d%d", &x2, &y2);
  scanf("%d%d", &x3, &y3);
  long long disa = dis(x1, y1, x2, y2);
  long long disb = dis(x2, y2, x3, y3);
  bool ok = 1;
  if (disa != disb) ok = 0;
  double k = 1.0 * (y1 - y2) / (x1 - x2);
  double ny = 1.0 * y1 + (x3 - x1) * k;
  if (x1 != x2) {
    if (fabs(ny - 1.0 * y3) < eps) ok = 0;
  } else {
    if (x1 == x2 && x2 == x3) ok = 0;
  }
  puts(ok ? "Yes" : "No");
  return 0;
}