import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int x = 0;
		int y = 0;
		int t = 0;
		for(int i = 0; i < n; i++) {
			int targetT = sc.nextInt();
			int targetX = sc.nextInt();
			int targetY = sc.nextInt();
			if((targetT -t) < (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				System.out.println("No");
				return;
			}
			if((targetT -t) == (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}
			if(((targetT -t) - ((Math.abs(targetX -x) + Math.abs(targetY -y)))) % 2 ==0) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}else {
				System.out.println("No");
				return;
			}
		}
		System.out.println("Yes");
	}
} import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int x = 0;
		int y = 0;
		int t = 0;
		for(int i = 0; i < n; i++) {
			int targetT = sc.nextInt();
			int targetX = sc.nextInt();
			int targetY = sc.nextInt();
			if((targetT -t) < (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				System.out.println("No");
				return;
			}
			if((targetT -t) == (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}
			if(((targetT -t) - ((Math.abs(targetX -x) + Math.abs(targetY -y)))) % 2 ==0) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}else {
				System.out.println("No");
				return;
			}
		}
		System.out.println("Yes");
	}
} Main public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int x = 0;
		int y = 0;
		int t = 0;
		for(int i = 0; i < n; i++) {
			int targetT = sc.nextInt();
			int targetX = sc.nextInt();
			int targetY = sc.nextInt();
			if((targetT -t) < (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				System.out.println("No");
				return;
			}
			if((targetT -t) == (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}
			if(((targetT -t) - ((Math.abs(targetX -x) + Math.abs(targetY -y)))) % 2 ==0) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}else {
				System.out.println("No");
				return;
			}
		}
		System.out.println("Yes");
	} main {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int x = 0;
		int y = 0;
		int t = 0;
		for(int i = 0; i < n; i++) {
			int targetT = sc.nextInt();
			int targetX = sc.nextInt();
			int targetY = sc.nextInt();
			if((targetT -t) < (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				System.out.println("No");
				return;
			}
			if((targetT -t) == (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}
			if(((targetT -t) - ((Math.abs(targetX -x) + Math.abs(targetY -y)))) % 2 ==0) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}else {
				System.out.println("No");
				return;
			}
		}
		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 x = 0; x 0 int y = 0; y 0 int t = 0; t 0 for(int i = 0; i < n; i++) {
			int targetT = sc.nextInt();
			int targetX = sc.nextInt();
			int targetY = sc.nextInt();
			if((targetT -t) < (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				System.out.println("No");
				return;
			}
			if((targetT -t) == (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}
			if(((targetT -t) - ((Math.abs(targetX -x) + Math.abs(targetY -y)))) % 2 ==0) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}else {
				System.out.println("No");
				return;
			}
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			int targetT = sc.nextInt();
			int targetX = sc.nextInt();
			int targetY = sc.nextInt();
			if((targetT -t) < (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				System.out.println("No");
				return;
			}
			if((targetT -t) == (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}
			if(((targetT -t) - ((Math.abs(targetX -x) + Math.abs(targetY -y)))) % 2 ==0) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}else {
				System.out.println("No");
				return;
			}
		} {
			int targetT = sc.nextInt();
			int targetX = sc.nextInt();
			int targetY = sc.nextInt();
			if((targetT -t) < (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				System.out.println("No");
				return;
			}
			if((targetT -t) == (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}
			if(((targetT -t) - ((Math.abs(targetX -x) + Math.abs(targetY -y)))) % 2 ==0) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}else {
				System.out.println("No");
				return;
			}
		} int targetT = sc.nextInt(); targetT sc.nextInt() sc.nextInt sc int targetX = sc.nextInt(); targetX sc.nextInt() sc.nextInt sc int targetY = sc.nextInt(); targetY sc.nextInt() sc.nextInt sc if((targetT -t) < (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				System.out.println("No");
				return;
			} (targetT -t) < (Math.abs(targetX -x) + Math.abs(targetY -y)) (targetT -t) targetT t (Math.abs(targetX -x) + Math.abs(targetY -y)) Math.abs(targetX -x) Math.abs Math targetX -x targetX x Math.abs(targetY -y) Math.abs Math targetY -y targetY y {
				System.out.println("No");
				return;
			} System.out.println("No") System.out.println System.out System System.out "No" return; if((targetT -t) == (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			} (targetT -t) == (Math.abs(targetX -x) + Math.abs(targetY -y)) (targetT -t) targetT t (Math.abs(targetX -x) + Math.abs(targetY -y)) Math.abs(targetX -x) Math.abs Math targetX -x targetX x Math.abs(targetY -y) Math.abs Math targetY -y targetY y {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			} x = targetX x targetX y = targetY y targetY t = targetT t targetT continue; if(((targetT -t) - ((Math.abs(targetX -x) + Math.abs(targetY -y)))) % 2 ==0) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}else {
				System.out.println("No");
				return;
			} ((targetT -t) - ((Math.abs(targetX -x) + Math.abs(targetY -y)))) % 2 ==0 ((targetT -t) - ((Math.abs(targetX -x) + Math.abs(targetY -y)))) % 2 ((targetT -t) - ((Math.abs(targetX -x) + Math.abs(targetY -y)))) (targetT -t) targetT t ((Math.abs(targetX -x) + Math.abs(targetY -y))) Math.abs(targetX -x) Math.abs Math targetX -x targetX x Math.abs(targetY -y) Math.abs Math targetY -y targetY y 2 0 {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			} x = targetX x targetX y = targetY y targetY t = targetT t targetT continue; {
				System.out.println("No");
				return;
			} System.out.println("No") System.out.println System.out System System.out "No" return; System.out.println("Yes") System.out.println System.out System System.out "Yes" String[] args args public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int x = 0;
		int y = 0;
		int t = 0;
		for(int i = 0; i < n; i++) {
			int targetT = sc.nextInt();
			int targetX = sc.nextInt();
			int targetY = sc.nextInt();
			if((targetT -t) < (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				System.out.println("No");
				return;
			}
			if((targetT -t) == (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}
			if(((targetT -t) - ((Math.abs(targetX -x) + Math.abs(targetY -y)))) % 2 ==0) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}else {
				System.out.println("No");
				return;
			}
		}
		System.out.println("Yes");
	}
} public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int x = 0;
		int y = 0;
		int t = 0;
		for(int i = 0; i < n; i++) {
			int targetT = sc.nextInt();
			int targetX = sc.nextInt();
			int targetY = sc.nextInt();
			if((targetT -t) < (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				System.out.println("No");
				return;
			}
			if((targetT -t) == (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}
			if(((targetT -t) - ((Math.abs(targetX -x) + Math.abs(targetY -y)))) % 2 ==0) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}else {
				System.out.println("No");
				return;
			}
		}
		System.out.println("Yes");
	}
} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int x = 0;
		int y = 0;
		int t = 0;
		for(int i = 0; i < n; i++) {
			int targetT = sc.nextInt();
			int targetX = sc.nextInt();
			int targetY = sc.nextInt();
			if((targetT -t) < (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				System.out.println("No");
				return;
			}
			if((targetT -t) == (Math.abs(targetX -x) + Math.abs(targetY -y))) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}
			if(((targetT -t) - ((Math.abs(targetX -x) + Math.abs(targetY -y)))) % 2 ==0) {
				x = targetX;
				y = targetY;
				t = targetT;
				continue;
			}else {
				System.out.println("No");
				return;
			}
		}
		System.out.println("Yes");
	}
}