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 PYTHON3):

Solution:
ax, ay, bx, by, cx, cy = map(int, input().split())

import sys

def gcd(a, b):
    if(min(a, b) == 0):
        return max(a, b)
    return gcd(min(a, b), max(a, b) % min(a, b))

if(ax == bx and bx == cx):
    print("No")
    sys.exit()
if(ay == by and by == cy):
    print("No")
    sys.exit()

coords = []
coords.append((ax, ay))
coords.append((bx, by))
coords.append((cx, cy))

coords = sorted(coords)

delta = set()

def getdelta(f, s):
    dx = coords[s][0] - coords[f][0]
    dy = coords[s][1] - coords[f][1]
    g = gcd(abs(dx), abs(dy))
    dx /= g
    dy /= g
    tmp = (dx, dy)
    if(tmp in delta):
        return False
    delta.add(tmp)
    return True

for i in range(3):
    for j in range(3):
        if(i == j):continue
        if(not getdelta(i, j)):
            print("No")
            sys.exit()

def d(a, b):
    return (a[0] - b[0])**2 + (a[1] - b[1])**2

if(d((ax, ay), (bx, by)) == d((bx, by), (cx, cy))):
    print("Yes")
    sys.exit()

print("No")