import java.util.Scanner;
import java.util.Arrays;
import java.util.ArrayList;


public class Main {
	public static void main(String args[]) throws InterruptedException {
		    Scanner sc = new Scanner(System.in);	
			
			int n = sc.nextInt();
			int[] tm = new int[n];
			int[] x = new int[n];
			int[] y = new int[n];
			int[] tmdst = new int[n];
			int[] dst = new int[n];
			int trfls = 0;
			for (int i = 0; i < n; i++) {
				tm[i] = sc.nextInt();
				x[i] = sc.nextInt();
				y[i] = sc.nextInt();
			}
			for (int i = 0; i < n; i++) {
				if (i == 0) {
					tmdst[i] = tm[0];
					dst[i] = Math.abs(x[i])+Math.abs(y[i]);
				}else{
					tmdst[i] = tm[i] - tm[i-1];
					dst[i] = Math.abs(x[i]-x[i-1])+Math.abs(y[i]-y[i-1]);
				}
			}
			for (int i = 0; i < n; i++) {
				if (traveling(dst[i],tmdst[i]) == true) {
					continue;
				}else{
					trfls++;
				}
			}
			if(trfls == 0){
				System.out.println("Yes");
			}else{
				System.out.println("No");
			}

		    sc.close(); }
	
	public static boolean traveling(int dst , int tmdst) {
		if (dst <= tmdst && (tmdst - dst) % 2 ==0 ) {
			return true;
		}else{
			return false;
		}
	}

} import java.util.Scanner; Scanner java.util import java.util.Arrays; Arrays java.util import java.util.ArrayList; ArrayList java.util public class Main {
	public static void main(String args[]) throws InterruptedException {
		    Scanner sc = new Scanner(System.in);	
			
			int n = sc.nextInt();
			int[] tm = new int[n];
			int[] x = new int[n];
			int[] y = new int[n];
			int[] tmdst = new int[n];
			int[] dst = new int[n];
			int trfls = 0;
			for (int i = 0; i < n; i++) {
				tm[i] = sc.nextInt();
				x[i] = sc.nextInt();
				y[i] = sc.nextInt();
			}
			for (int i = 0; i < n; i++) {
				if (i == 0) {
					tmdst[i] = tm[0];
					dst[i] = Math.abs(x[i])+Math.abs(y[i]);
				}else{
					tmdst[i] = tm[i] - tm[i-1];
					dst[i] = Math.abs(x[i]-x[i-1])+Math.abs(y[i]-y[i-1]);
				}
			}
			for (int i = 0; i < n; i++) {
				if (traveling(dst[i],tmdst[i]) == true) {
					continue;
				}else{
					trfls++;
				}
			}
			if(trfls == 0){
				System.out.println("Yes");
			}else{
				System.out.println("No");
			}

		    sc.close(); }
	
	public static boolean traveling(int dst , int tmdst) {
		if (dst <= tmdst && (tmdst - dst) % 2 ==0 ) {
			return true;
		}else{
			return false;
		}
	}

} Main public static void main(String args[]) throws InterruptedException {
		    Scanner sc = new Scanner(System.in);	
			
			int n = sc.nextInt();
			int[] tm = new int[n];
			int[] x = new int[n];
			int[] y = new int[n];
			int[] tmdst = new int[n];
			int[] dst = new int[n];
			int trfls = 0;
			for (int i = 0; i < n; i++) {
				tm[i] = sc.nextInt();
				x[i] = sc.nextInt();
				y[i] = sc.nextInt();
			}
			for (int i = 0; i < n; i++) {
				if (i == 0) {
					tmdst[i] = tm[0];
					dst[i] = Math.abs(x[i])+Math.abs(y[i]);
				}else{
					tmdst[i] = tm[i] - tm[i-1];
					dst[i] = Math.abs(x[i]-x[i-1])+Math.abs(y[i]-y[i-1]);
				}
			}
			for (int i = 0; i < n; i++) {
				if (traveling(dst[i],tmdst[i]) == true) {
					continue;
				}else{
					trfls++;
				}
			}
			if(trfls == 0){
				System.out.println("Yes");
			}else{
				System.out.println("No");
			}

		    sc.close(); } main {
		    Scanner sc = new Scanner(System.in);	
			
			int n = sc.nextInt();
			int[] tm = new int[n];
			int[] x = new int[n];
			int[] y = new int[n];
			int[] tmdst = new int[n];
			int[] dst = new int[n];
			int trfls = 0;
			for (int i = 0; i < n; i++) {
				tm[i] = sc.nextInt();
				x[i] = sc.nextInt();
				y[i] = sc.nextInt();
			}
			for (int i = 0; i < n; i++) {
				if (i == 0) {
					tmdst[i] = tm[0];
					dst[i] = Math.abs(x[i])+Math.abs(y[i]);
				}else{
					tmdst[i] = tm[i] - tm[i-1];
					dst[i] = Math.abs(x[i]-x[i-1])+Math.abs(y[i]-y[i-1]);
				}
			}
			for (int i = 0; i < n; i++) {
				if (traveling(dst[i],tmdst[i]) == true) {
					continue;
				}else{
					trfls++;
				}
			}
			if(trfls == 0){
				System.out.println("Yes");
			}else{
				System.out.println("No");
			}

		    sc.close(); } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc int[] tm = new int[n]; tm new int[n] n int[] x = new int[n]; x new int[n] n int[] y = new int[n]; y new int[n] n int[] tmdst = new int[n]; tmdst new int[n] n int[] dst = new int[n]; dst new int[n] n int trfls = 0; trfls 0 for (int i = 0; i < n; i++) {
				tm[i] = sc.nextInt();
				x[i] = sc.nextInt();
				y[i] = sc.nextInt();
			} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
				tm[i] = sc.nextInt();
				x[i] = sc.nextInt();
				y[i] = sc.nextInt();
			} {
				tm[i] = sc.nextInt();
				x[i] = sc.nextInt();
				y[i] = sc.nextInt();
			} tm[i] = sc.nextInt() tm[i] tm i sc.nextInt() sc.nextInt sc x[i] = sc.nextInt() x[i] x i sc.nextInt() sc.nextInt sc y[i] = sc.nextInt() y[i] y i sc.nextInt() sc.nextInt sc for (int i = 0; i < n; i++) {
				if (i == 0) {
					tmdst[i] = tm[0];
					dst[i] = Math.abs(x[i])+Math.abs(y[i]);
				}else{
					tmdst[i] = tm[i] - tm[i-1];
					dst[i] = Math.abs(x[i]-x[i-1])+Math.abs(y[i]-y[i-1]);
				}
			} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
				if (i == 0) {
					tmdst[i] = tm[0];
					dst[i] = Math.abs(x[i])+Math.abs(y[i]);
				}else{
					tmdst[i] = tm[i] - tm[i-1];
					dst[i] = Math.abs(x[i]-x[i-1])+Math.abs(y[i]-y[i-1]);
				}
			} {
				if (i == 0) {
					tmdst[i] = tm[0];
					dst[i] = Math.abs(x[i])+Math.abs(y[i]);
				}else{
					tmdst[i] = tm[i] - tm[i-1];
					dst[i] = Math.abs(x[i]-x[i-1])+Math.abs(y[i]-y[i-1]);
				}
			} if (i == 0) {
					tmdst[i] = tm[0];
					dst[i] = Math.abs(x[i])+Math.abs(y[i]);
				}else{
					tmdst[i] = tm[i] - tm[i-1];
					dst[i] = Math.abs(x[i]-x[i-1])+Math.abs(y[i]-y[i-1]);
				} i == 0 i 0 {
					tmdst[i] = tm[0];
					dst[i] = Math.abs(x[i])+Math.abs(y[i]);
				} tmdst[i] = tm[0] tmdst[i] tmdst i tm[0] tm 0 dst[i] = Math.abs(x[i])+Math.abs(y[i]) dst[i] dst i Math.abs(x[i])+Math.abs(y[i]) Math.abs(x[i]) Math.abs Math x[i] x i Math.abs(y[i]) Math.abs Math y[i] y i {
					tmdst[i] = tm[i] - tm[i-1];
					dst[i] = Math.abs(x[i]-x[i-1])+Math.abs(y[i]-y[i-1]);
				} tmdst[i] = tm[i] - tm[i-1] tmdst[i] tmdst i tm[i] - tm[i-1] tm[i] tm i tm[i-1] tm i-1 i 1 dst[i] = Math.abs(x[i]-x[i-1])+Math.abs(y[i]-y[i-1]) dst[i] dst i Math.abs(x[i]-x[i-1])+Math.abs(y[i]-y[i-1]) Math.abs(x[i]-x[i-1]) Math.abs Math x[i]-x[i-1] x[i] x i x[i-1] x i-1 i 1 Math.abs(y[i]-y[i-1]) Math.abs Math y[i]-y[i-1] y[i] y i y[i-1] y i-1 i 1 for (int i = 0; i < n; i++) {
				if (traveling(dst[i],tmdst[i]) == true) {
					continue;
				}else{
					trfls++;
				}
			} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
				if (traveling(dst[i],tmdst[i]) == true) {
					continue;
				}else{
					trfls++;
				}
			} {
				if (traveling(dst[i],tmdst[i]) == true) {
					continue;
				}else{
					trfls++;
				}
			} if (traveling(dst[i],tmdst[i]) == true) {
					continue;
				}else{
					trfls++;
				} traveling(dst[i],tmdst[i]) == true traveling(dst[i],tmdst[i]) traveling dst[i] dst i tmdst[i] tmdst i true {
					continue;
				} continue; {
					trfls++;
				} trfls++ trfls if(trfls == 0){
				System.out.println("Yes");
			}else{
				System.out.println("No");
			} trfls == 0 trfls 0 {
				System.out.println("Yes");
			} System.out.println("Yes") System.out.println System.out System System.out "Yes" {
				System.out.println("No");
			} System.out.println("No") System.out.println System.out System System.out "No" sc.close() sc.close sc String args[] args public static boolean traveling(int dst , int tmdst) {
		if (dst <= tmdst && (tmdst - dst) % 2 ==0 ) {
			return true;
		}else{
			return false;
		}
	} traveling {
		if (dst <= tmdst && (tmdst - dst) % 2 ==0 ) {
			return true;
		}else{
			return false;
		}
	} if (dst <= tmdst && (tmdst - dst) % 2 ==0 ) {
			return true;
		}else{
			return false;
		} dst <= tmdst && (tmdst - dst) % 2 ==0 dst <= tmdst dst tmdst (tmdst - dst) % 2 ==0 (tmdst - dst) % 2 (tmdst - dst) tmdst dst 2 0 {
			return true;
		} return true; true {
			return false;
		} return false; false int dst dst int tmdst tmdst public class Main {
	public static void main(String args[]) throws InterruptedException {
		    Scanner sc = new Scanner(System.in);	
			
			int n = sc.nextInt();
			int[] tm = new int[n];
			int[] x = new int[n];
			int[] y = new int[n];
			int[] tmdst = new int[n];
			int[] dst = new int[n];
			int trfls = 0;
			for (int i = 0; i < n; i++) {
				tm[i] = sc.nextInt();
				x[i] = sc.nextInt();
				y[i] = sc.nextInt();
			}
			for (int i = 0; i < n; i++) {
				if (i == 0) {
					tmdst[i] = tm[0];
					dst[i] = Math.abs(x[i])+Math.abs(y[i]);
				}else{
					tmdst[i] = tm[i] - tm[i-1];
					dst[i] = Math.abs(x[i]-x[i-1])+Math.abs(y[i]-y[i-1]);
				}
			}
			for (int i = 0; i < n; i++) {
				if (traveling(dst[i],tmdst[i]) == true) {
					continue;
				}else{
					trfls++;
				}
			}
			if(trfls == 0){
				System.out.println("Yes");
			}else{
				System.out.println("No");
			}

		    sc.close(); }
	
	public static boolean traveling(int dst , int tmdst) {
		if (dst <= tmdst && (tmdst - dst) % 2 ==0 ) {
			return true;
		}else{
			return false;
		}
	}

} public class Main {
	public static void main(String args[]) throws InterruptedException {
		    Scanner sc = new Scanner(System.in);	
			
			int n = sc.nextInt();
			int[] tm = new int[n];
			int[] x = new int[n];
			int[] y = new int[n];
			int[] tmdst = new int[n];
			int[] dst = new int[n];
			int trfls = 0;
			for (int i = 0; i < n; i++) {
				tm[i] = sc.nextInt();
				x[i] = sc.nextInt();
				y[i] = sc.nextInt();
			}
			for (int i = 0; i < n; i++) {
				if (i == 0) {
					tmdst[i] = tm[0];
					dst[i] = Math.abs(x[i])+Math.abs(y[i]);
				}else{
					tmdst[i] = tm[i] - tm[i-1];
					dst[i] = Math.abs(x[i]-x[i-1])+Math.abs(y[i]-y[i-1]);
				}
			}
			for (int i = 0; i < n; i++) {
				if (traveling(dst[i],tmdst[i]) == true) {
					continue;
				}else{
					trfls++;
				}
			}
			if(trfls == 0){
				System.out.println("Yes");
			}else{
				System.out.println("No");
			}

		    sc.close(); }
	
	public static boolean traveling(int dst , int tmdst) {
		if (dst <= tmdst && (tmdst - dst) % 2 ==0 ) {
			return true;
		}else{
			return false;
		}
	}

} Main
import java.util.Scanner;
import java.util.Arrays;
import java.util.ArrayList;


public class Main {
	public static void main(String args[]) throws InterruptedException {
		    Scanner sc = new Scanner(System.in);	
			
			int n = sc.nextInt();
			int[] tm = new int[n];
			int[] x = new int[n];
			int[] y = new int[n];
			int[] tmdst = new int[n];
			int[] dst = new int[n];
			int trfls = 0;
			for (int i = 0; i < n; i++) {
				tm[i] = sc.nextInt();
				x[i] = sc.nextInt();
				y[i] = sc.nextInt();
			}
			for (int i = 0; i < n; i++) {
				if (i == 0) {
					tmdst[i] = tm[0];
					dst[i] = Math.abs(x[i])+Math.abs(y[i]);
				}else{
					tmdst[i] = tm[i] - tm[i-1];
					dst[i] = Math.abs(x[i]-x[i-1])+Math.abs(y[i]-y[i-1]);
				}
			}
			for (int i = 0; i < n; i++) {
				if (traveling(dst[i],tmdst[i]) == true) {
					continue;
				}else{
					trfls++;
				}
			}
			if(trfls == 0){
				System.out.println("Yes");
			}else{
				System.out.println("No");
			}

		    sc.close(); }
	
	public static boolean traveling(int dst , int tmdst) {
		if (dst <= tmdst && (tmdst - dst) % 2 ==0 ) {
			return true;
		}else{
			return false;
		}
	}

}
