At a geometry lesson Gerald was given a task: to get vector B out of vector A. Besides, the teacher permitted him to perform the following operations with vector А:

  * Turn the vector by 90 degrees clockwise.
  * Add to the vector a certain vector C.



Operations could be performed in any order any number of times.

Can Gerald cope with the task?

Input

The first line contains integers x1 и y1 — the coordinates of the vector A ( - 108 ≤ x1, y1 ≤ 108). The second and the third line contain in the similar manner vectors B and C (their coordinates are integers; their absolute value does not exceed 108).

Output

Print "YES" (without the quotes) if it is possible to get vector B using the given operations. Otherwise print "NO" (without the quotes).

Examples

Input

0 0
1 1
0 1


Output

YES


Input

0 0
1 1
1 1


Output

YES


Input

0 0
1 1
2 2


Output

NO
#include <bits/stdc++.h>
using namespace std;
void rot(pair<int, int> &p) {
  swap(p.first, p.second);
  p.first *= -1;
}
double norm(pair<int, int> p) {
  double x = p.first, y = p.second;
  return sqrt(x * x + y * y);
}
long long qua(double siz, pair<int, int> b) {
  double bs = norm(b);
  return round(siz / bs);
}
bool make(pair<int, int> t, pair<int, int> b) {
  if (t.first == 0 && t.second == 0) return true;
  if (b.first == 0 && b.second == 0) return t == b;
  double bm = norm(b);
  double dp = (t.first * 1.0 * b.first + t.second * 1.0 * b.second);
  double sz = dp / bm;
  long long v1 = qua(sz, b);
  double rs = sqrt(max(pow(norm(t), 2) - sz * sz, 1e-9));
  long long v2 = qua(rs, b);
  long long x = b.first * v1;
  long long y = b.second * v1;
  for (int i = 0; i < 4; i++) {
    if (x + b.first * v2 == t.first && y + b.second * v2 == t.second) {
      return true;
    }
    rot(b);
  }
  return false;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0), cout.tie(0), cout.precision(15);
  pair<int, int> a, b, c;
  cin >> a.first >> a.second;
  cin >> b.first >> b.second;
  cin >> c.first >> c.second;
  for (int i = 0; i < 4; i++) {
    pair<int, int> d = {b.first - a.first, b.second - a.second};
    if (make(d, c)) {
      cout << "YES\n";
      return 0;
    }
    rot(a);
  }
  cout << "NO\n";
}
