Problem:
Score: 300 points

Problem Statement

We have a 3 \times 3 grid. A number c_{i, j} is written in the square (i, j), where (i, j) denotes the square at the i-th row from the top and the j-th column from the left.

According to Takahashi, there are six integers a_1, a_2, a_3, b_1, b_2, b_3 whose values are fixed, and the number written in the square (i, j) is equal to a_i + b_j.

Determine if he is correct.

Constraints

c_{i, j} \ (1 \leq i \leq 3, 1 \leq j \leq 3) is an integer between 0 and 100 (inclusive).

Input

Input is given from Standard Input in the following format:

c_{1,1} c_{1,2} c_{1,3}
c_{2,1} c_{2,2} c_{2,3}
c_{3,1} c_{3,2} c_{3,3}

Output

If Takahashi's statement is correct, print Yes; otherwise, print No.

Sample Input 1

1 0 1
2 1 2
1 0 1

Sample Output 1

Yes

Takahashi is correct, since there are possible sets of integers such as: a_1=0,a_2=1,a_3=0,b_1=1,b_2=0,b_3=1.

Sample Input 2

2 2 2
2 1 2
2 2 2

Sample Output 2

No

Takahashi is incorrect in this case.

Sample Input 3

0 8 8
0 8 8
0 8 8

Sample Output 3

Yes

Sample Input 4

1 8 6
2 9 7
0 7 7

Sample Output 4

No

Solution in Java8 (OpenJDK 1.8.0) (judge verdict: Accepted)


// int型のオーバーフローに注意
// 文字列の比較は==ではなく.equalsを使おう
// Stringの入力はnext();が丸い

import java.util.Scanner;

public class Main {

	public static void main(String args[]) {
		    Scanner sc = new Scanner(System.in);

		    int c11 = sc.nextInt();
		    int c12 = sc.nextInt();
		    int c13 = sc.nextInt();
		    int c21 = sc.nextInt();
		    int c22 = sc.nextInt();
		    int c23 = sc.nextInt();
		    int c31 = sc.nextInt();
		    int c32 = sc.nextInt();
		    int c33 = sc.nextInt();
		    int count = 0;
		    
		    if(c12 - c11== c22 - c21 && c22 - c21 == c32 - c31) {
		    	if(c13 - c12== c23 - c22 && c23 - c22 == c33 - c32) {
		    		if(c11 - c13== c21 - c23 && c21 - c23 == c31 - c33) {
		    			if(c21 -c11 == c22 -c12 && c22 - c12 == c23 - c13) {
		    				if(c31 -c21 == c32 -c22 && c32 - c22 == c33 - c23) {
		    					if(c11 -c31 == c12 -c32 && c12 - c32 == c13 - c33) {
				    				
				    			}
			    			}else {
			    				count++;
			    			}
		    			}else {
		    				count++;
		    			}
			    	}else {
			    		count++;
			    	}
		    	}else {
		    		count++;
		    	}
		    }else {
		    	count++;
		    }
		    if(count != 0) {
		    	System.out.println("No");
		    }else {
		    	System.out.println("Yes");
		    }
		    
		    sc.close(); }

	public static  int gcd(int a, int b) {
	    if (a < b) {
	        int tmp = a;
	        a = b;
	        b = tmp;
	    }

	    int r = -1;
	    while (r != 0) {
	        r = a % b;
	        a = b;
	        b = r;
	    }

	    return a;
	}
}