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
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * User: Lenovo
 * Date: 12-4-10
 * Time: 下午11:20
 * To change this template use File | Settings | File Templates.
 */
public class Main {
    private static long gcd(long a,long b)
    {
        return b==0 ? a : gcd(b,a%b);
    }
    private static boolean can(long a,long b,long c,long d,long e,long f)
    {
        long s=a*e-b*d;
        if (s!=0)
        {
            return (c*e-b*f)%s==0 && (a*f-c*d)%s==0;
        }
        if((a==0 && b==0 && c!=0) || (d==0 && e==0 && f!=0)) return false;
        else if(c*e==b*f && a*f==c*d)
        {
            long g=gcd(Math.abs(a),Math.abs(b));
            if(g==0)
            {
                if(a==0 && b==0) return c==0;
                else return c%Math.max(Math.abs(a),Math.abs(b))==0;
            }
            return c%g==0;
        }
        return false;
    }
    public static void main(String[] args)
    {
        long x1,y1,x2,y2,x3,y3;
        Scanner scan = new Scanner(System.in);
        x1=scan.nextLong();
        y1=scan.nextLong();
        x3=scan.nextLong();
        y3=scan.nextLong();
        x2=scan.nextLong();
        y2=scan.nextLong();
        System.out.println((can(x2,y2,x1-x3,y2,-x2,y1-y3)
                || can(x2,y2,x1+x3,y2,-x2,y1+y3)
                || can(x2,y2,x1-y3,y2,-x2,y1+x3)
                || can(x2,y2,x1+y3,y2,-x2,y1-x3)) ? "YES" : "NO");
    }
}
