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

Solution:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.math.BigDecimal;

public class B {

    static PrintWriter out = new PrintWriter(System.out);
    static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

    public static void main(String[] args) throws Exception{
        String[] ar= reader.readLine().split(" ");
        long ax = Long.valueOf(ar[0]);
        long ay = Long.valueOf(ar[1]);
        long bx = Long.valueOf(ar[2]);
        long by = Long.valueOf(ar[3]);
        long cx = Long.valueOf(ar[4]);
        long cy = Long.valueOf(ar[5]);

        if (    judge(ax, ay, bx, by, cx, cy)
//                judge(cx, cy, bx, by, ax, ay) ||
//                judge(ax, ay, cx, cy, bx, by) ||
//                judge(bx, by, cx, cy, ax, ay) ||
//                judge(cx, cy, ax, ay, bx, by) ||
//                judge(bx, by, ax, ay, cx, cy)
                ) System.out.println("Yes");
        else System.out.println("No");
    }

    static boolean judge(long ax, long ay, long bx, long by, long cx, long cy){
        long a = ay - by, b = ax - bx, c = cy - by , d = cx - bx;
        if (a * a + b * b != c * c + d *d){
            return false;
        }
        long dx = bx + bx - ax;
        long dy = by + by - ay;
        return !(dx == cx && dy == cy);
        //        if(b != 0 && d != 0) {
//            if (a / b == c / d && a % b == c % d) {
//                return false;
//            }
//            return true;
//        }
//        if (ay != by || by != cy) return true;
//        return false;
    }
}