import java.util.*;

public class Main {
	public static void main(String... args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[][] txy = new int[3][n+1];
		txy[0][0] = 0;
		txy[1][0] = 0;
		txy[2][0] = 0;
		for (int i = 1 ; i <= n ; i++) {
			txy[0][i] = sc.nextInt();
			txy[1][i] = sc.nextInt();
			txy[2][i] = sc.nextInt();
		}
		for (int i = 1 ; i <= n ; i++) {
			if (!check(txy[0][i] - txy[0][i-1],txy[1][i] - txy[1][i-1],txy[2][i] - txy[2][i-1])) {
				System.out.println("No");
				System.exit(0);
			}
		}
		System.out.println("Yes");
	}

	private static boolean check(int cnt, int x, int y) {
		if ((Math.abs(x) + Math.abs(y)) % 2 == cnt % 2
				&& Math.abs(x) + Math.abs(y) <= cnt) return true;
		return false;
	}
} import java.util.*; util.* java public class Main {
	public static void main(String... args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[][] txy = new int[3][n+1];
		txy[0][0] = 0;
		txy[1][0] = 0;
		txy[2][0] = 0;
		for (int i = 1 ; i <= n ; i++) {
			txy[0][i] = sc.nextInt();
			txy[1][i] = sc.nextInt();
			txy[2][i] = sc.nextInt();
		}
		for (int i = 1 ; i <= n ; i++) {
			if (!check(txy[0][i] - txy[0][i-1],txy[1][i] - txy[1][i-1],txy[2][i] - txy[2][i-1])) {
				System.out.println("No");
				System.exit(0);
			}
		}
		System.out.println("Yes");
	}

	private static boolean check(int cnt, int x, int y) {
		if ((Math.abs(x) + Math.abs(y)) % 2 == cnt % 2
				&& Math.abs(x) + Math.abs(y) <= cnt) return true;
		return false;
	}
} Main public static void main(String... args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[][] txy = new int[3][n+1];
		txy[0][0] = 0;
		txy[1][0] = 0;
		txy[2][0] = 0;
		for (int i = 1 ; i <= n ; i++) {
			txy[0][i] = sc.nextInt();
			txy[1][i] = sc.nextInt();
			txy[2][i] = sc.nextInt();
		}
		for (int i = 1 ; i <= n ; i++) {
			if (!check(txy[0][i] - txy[0][i-1],txy[1][i] - txy[1][i-1],txy[2][i] - txy[2][i-1])) {
				System.out.println("No");
				System.exit(0);
			}
		}
		System.out.println("Yes");
	} main {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[][] txy = new int[3][n+1];
		txy[0][0] = 0;
		txy[1][0] = 0;
		txy[2][0] = 0;
		for (int i = 1 ; i <= n ; i++) {
			txy[0][i] = sc.nextInt();
			txy[1][i] = sc.nextInt();
			txy[2][i] = sc.nextInt();
		}
		for (int i = 1 ; i <= n ; i++) {
			if (!check(txy[0][i] - txy[0][i-1],txy[1][i] - txy[1][i-1],txy[2][i] - txy[2][i-1])) {
				System.out.println("No");
				System.exit(0);
			}
		}
		System.out.println("Yes");
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc int[][] txy = new int[3][n+1]; txy new int[3][n+1] 3 n+1 n 1 txy[0][0] = 0 txy[0][0] txy[0] txy 0 0 0 txy[1][0] = 0 txy[1][0] txy[1] txy 1 0 0 txy[2][0] = 0 txy[2][0] txy[2] txy 2 0 0 for (int i = 1 ; i <= n ; i++) {
			txy[0][i] = sc.nextInt();
			txy[1][i] = sc.nextInt();
			txy[2][i] = sc.nextInt();
		} int i = 1 ; int i = 1 ; i 1 i <= n i n i++ i++ i {
			txy[0][i] = sc.nextInt();
			txy[1][i] = sc.nextInt();
			txy[2][i] = sc.nextInt();
		} {
			txy[0][i] = sc.nextInt();
			txy[1][i] = sc.nextInt();
			txy[2][i] = sc.nextInt();
		} txy[0][i] = sc.nextInt() txy[0][i] txy[0] txy 0 i sc.nextInt() sc.nextInt sc txy[1][i] = sc.nextInt() txy[1][i] txy[1] txy 1 i sc.nextInt() sc.nextInt sc txy[2][i] = sc.nextInt() txy[2][i] txy[2] txy 2 i sc.nextInt() sc.nextInt sc for (int i = 1 ; i <= n ; i++) {
			if (!check(txy[0][i] - txy[0][i-1],txy[1][i] - txy[1][i-1],txy[2][i] - txy[2][i-1])) {
				System.out.println("No");
				System.exit(0);
			}
		} int i = 1 ; int i = 1 ; i 1 i <= n i n i++ i++ i {
			if (!check(txy[0][i] - txy[0][i-1],txy[1][i] - txy[1][i-1],txy[2][i] - txy[2][i-1])) {
				System.out.println("No");
				System.exit(0);
			}
		} {
			if (!check(txy[0][i] - txy[0][i-1],txy[1][i] - txy[1][i-1],txy[2][i] - txy[2][i-1])) {
				System.out.println("No");
				System.exit(0);
			}
		} if (!check(txy[0][i] - txy[0][i-1],txy[1][i] - txy[1][i-1],txy[2][i] - txy[2][i-1])) {
				System.out.println("No");
				System.exit(0);
			} !check(txy[0][i] - txy[0][i-1],txy[1][i] - txy[1][i-1],txy[2][i] - txy[2][i-1]) check(txy[0][i] - txy[0][i-1],txy[1][i] - txy[1][i-1],txy[2][i] - txy[2][i-1]) check txy[0][i] - txy[0][i-1] txy[0][i] txy[0] txy 0 i txy[0][i-1] txy[0] txy 0 i-1 i 1 txy[1][i] - txy[1][i-1] txy[1][i] txy[1] txy 1 i txy[1][i-1] txy[1] txy 1 i-1 i 1 txy[2][i] - txy[2][i-1] txy[2][i] txy[2] txy 2 i txy[2][i-1] txy[2] txy 2 i-1 i 1 {
				System.out.println("No");
				System.exit(0);
			} System.out.println("No") System.out.println System.out System System.out "No" System.exit(0) System.exit System 0 System.out.println("Yes") System.out.println System.out System System.out "Yes" String... args args private static boolean check(int cnt, int x, int y) {
		if ((Math.abs(x) + Math.abs(y)) % 2 == cnt % 2
				&& Math.abs(x) + Math.abs(y) <= cnt) return true;
		return false;
	} check {
		if ((Math.abs(x) + Math.abs(y)) % 2 == cnt % 2
				&& Math.abs(x) + Math.abs(y) <= cnt) return true;
		return false;
	} if ((Math.abs(x) + Math.abs(y)) % 2 == cnt % 2
				&& Math.abs(x) + Math.abs(y) <= cnt) return true; (Math.abs(x) + Math.abs(y)) % 2 == cnt % 2
				&& Math.abs(x) + Math.abs(y) <= cnt (Math.abs(x) + Math.abs(y)) % 2 == cnt % 2 (Math.abs(x) + Math.abs(y)) % 2 (Math.abs(x) + Math.abs(y)) Math.abs(x) Math.abs Math x Math.abs(y) Math.abs Math y 2 cnt % 2 cnt 2 Math.abs(x) + Math.abs(y) <= cnt Math.abs(x) + Math.abs(y) Math.abs(x) Math.abs Math x Math.abs(y) Math.abs Math y cnt return true; true return false; false int cnt cnt int x x int y y public class Main {
	public static void main(String... args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[][] txy = new int[3][n+1];
		txy[0][0] = 0;
		txy[1][0] = 0;
		txy[2][0] = 0;
		for (int i = 1 ; i <= n ; i++) {
			txy[0][i] = sc.nextInt();
			txy[1][i] = sc.nextInt();
			txy[2][i] = sc.nextInt();
		}
		for (int i = 1 ; i <= n ; i++) {
			if (!check(txy[0][i] - txy[0][i-1],txy[1][i] - txy[1][i-1],txy[2][i] - txy[2][i-1])) {
				System.out.println("No");
				System.exit(0);
			}
		}
		System.out.println("Yes");
	}

	private static boolean check(int cnt, int x, int y) {
		if ((Math.abs(x) + Math.abs(y)) % 2 == cnt % 2
				&& Math.abs(x) + Math.abs(y) <= cnt) return true;
		return false;
	}
} public class Main {
	public static void main(String... args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[][] txy = new int[3][n+1];
		txy[0][0] = 0;
		txy[1][0] = 0;
		txy[2][0] = 0;
		for (int i = 1 ; i <= n ; i++) {
			txy[0][i] = sc.nextInt();
			txy[1][i] = sc.nextInt();
			txy[2][i] = sc.nextInt();
		}
		for (int i = 1 ; i <= n ; i++) {
			if (!check(txy[0][i] - txy[0][i-1],txy[1][i] - txy[1][i-1],txy[2][i] - txy[2][i-1])) {
				System.out.println("No");
				System.exit(0);
			}
		}
		System.out.println("Yes");
	}

	private static boolean check(int cnt, int x, int y) {
		if ((Math.abs(x) + Math.abs(y)) % 2 == cnt % 2
				&& Math.abs(x) + Math.abs(y) <= cnt) return true;
		return false;
	}
} Main
import java.util.*;

public class Main {
	public static void main(String... args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[][] txy = new int[3][n+1];
		txy[0][0] = 0;
		txy[1][0] = 0;
		txy[2][0] = 0;
		for (int i = 1 ; i <= n ; i++) {
			txy[0][i] = sc.nextInt();
			txy[1][i] = sc.nextInt();
			txy[2][i] = sc.nextInt();
		}
		for (int i = 1 ; i <= n ; i++) {
			if (!check(txy[0][i] - txy[0][i-1],txy[1][i] - txy[1][i-1],txy[2][i] - txy[2][i-1])) {
				System.out.println("No");
				System.exit(0);
			}
		}
		System.out.println("Yes");
	}

	private static boolean check(int cnt, int x, int y) {
		if ((Math.abs(x) + Math.abs(y)) % 2 == cnt % 2
				&& Math.abs(x) + Math.abs(y) <= cnt) return true;
		return false;
	}
}
