import java.util.*;
public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] t = new int[n];
		int[] x = new int[n];
		int[] y = new int[n];
		int[] dt = new int[n];
		int[] dx = new int[n];
		int[] dy = new int[n];
		t[0] = sc.nextInt();
		x[0] = sc.nextInt();
		y[0] = sc.nextInt();
		dt[0] = t[0];
		dx[0] = x[0];
		dy[0] = y[0];
		for(int i=1; i<n; i++){			
			t[i] = sc.nextInt();
			x[i] = sc.nextInt();
			y[i] = sc.nextInt();
			dt[i] = t[i] - t[i-1];
			dx[i] = x[i] - x[i-1];
			dy[i] = y[i] - y[i-1];
		}
		boolean bl = true;
		for(int i=0; i<n; i++){
			if(dx[i]+dy[i]>dt[i] || (dx[i]+dy[i]+dt[i])%2!=0){
				bl = false;
				break;
			}
		}
		System.out.println(bl==true ? "Yes" : "No");
	}
} 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[] t = new int[n];
		int[] x = new int[n];
		int[] y = new int[n];
		int[] dt = new int[n];
		int[] dx = new int[n];
		int[] dy = new int[n];
		t[0] = sc.nextInt();
		x[0] = sc.nextInt();
		y[0] = sc.nextInt();
		dt[0] = t[0];
		dx[0] = x[0];
		dy[0] = y[0];
		for(int i=1; i<n; i++){			
			t[i] = sc.nextInt();
			x[i] = sc.nextInt();
			y[i] = sc.nextInt();
			dt[i] = t[i] - t[i-1];
			dx[i] = x[i] - x[i-1];
			dy[i] = y[i] - y[i-1];
		}
		boolean bl = true;
		for(int i=0; i<n; i++){
			if(dx[i]+dy[i]>dt[i] || (dx[i]+dy[i]+dt[i])%2!=0){
				bl = false;
				break;
			}
		}
		System.out.println(bl==true ? "Yes" : "No");
	}
} Main public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] t = new int[n];
		int[] x = new int[n];
		int[] y = new int[n];
		int[] dt = new int[n];
		int[] dx = new int[n];
		int[] dy = new int[n];
		t[0] = sc.nextInt();
		x[0] = sc.nextInt();
		y[0] = sc.nextInt();
		dt[0] = t[0];
		dx[0] = x[0];
		dy[0] = y[0];
		for(int i=1; i<n; i++){			
			t[i] = sc.nextInt();
			x[i] = sc.nextInt();
			y[i] = sc.nextInt();
			dt[i] = t[i] - t[i-1];
			dx[i] = x[i] - x[i-1];
			dy[i] = y[i] - y[i-1];
		}
		boolean bl = true;
		for(int i=0; i<n; i++){
			if(dx[i]+dy[i]>dt[i] || (dx[i]+dy[i]+dt[i])%2!=0){
				bl = false;
				break;
			}
		}
		System.out.println(bl==true ? "Yes" : "No");
	} main {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] t = new int[n];
		int[] x = new int[n];
		int[] y = new int[n];
		int[] dt = new int[n];
		int[] dx = new int[n];
		int[] dy = new int[n];
		t[0] = sc.nextInt();
		x[0] = sc.nextInt();
		y[0] = sc.nextInt();
		dt[0] = t[0];
		dx[0] = x[0];
		dy[0] = y[0];
		for(int i=1; i<n; i++){			
			t[i] = sc.nextInt();
			x[i] = sc.nextInt();
			y[i] = sc.nextInt();
			dt[i] = t[i] - t[i-1];
			dx[i] = x[i] - x[i-1];
			dy[i] = y[i] - y[i-1];
		}
		boolean bl = true;
		for(int i=0; i<n; i++){
			if(dx[i]+dy[i]>dt[i] || (dx[i]+dy[i]+dt[i])%2!=0){
				bl = false;
				break;
			}
		}
		System.out.println(bl==true ? "Yes" : "No");
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc int[] t = new int[n]; t 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[] dt = new int[n]; dt new int[n] n int[] dx = new int[n]; dx new int[n] n int[] dy = new int[n]; dy new int[n] n t[0] = sc.nextInt() t[0] t 0 sc.nextInt() sc.nextInt sc x[0] = sc.nextInt() x[0] x 0 sc.nextInt() sc.nextInt sc y[0] = sc.nextInt() y[0] y 0 sc.nextInt() sc.nextInt sc dt[0] = t[0] dt[0] dt 0 t[0] t 0 dx[0] = x[0] dx[0] dx 0 x[0] x 0 dy[0] = y[0] dy[0] dy 0 y[0] y 0 for(int i=1; i<n; i++){			
			t[i] = sc.nextInt();
			x[i] = sc.nextInt();
			y[i] = sc.nextInt();
			dt[i] = t[i] - t[i-1];
			dx[i] = x[i] - x[i-1];
			dy[i] = y[i] - y[i-1];
		} int i=1; int i=1; i 1 i<n i n i++ i++ i {			
			t[i] = sc.nextInt();
			x[i] = sc.nextInt();
			y[i] = sc.nextInt();
			dt[i] = t[i] - t[i-1];
			dx[i] = x[i] - x[i-1];
			dy[i] = y[i] - y[i-1];
		} {			
			t[i] = sc.nextInt();
			x[i] = sc.nextInt();
			y[i] = sc.nextInt();
			dt[i] = t[i] - t[i-1];
			dx[i] = x[i] - x[i-1];
			dy[i] = y[i] - y[i-1];
		} t[i] = sc.nextInt() t[i] t 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 dt[i] = t[i] - t[i-1] dt[i] dt i t[i] - t[i-1] t[i] t i t[i-1] t i-1 i 1 dx[i] = x[i] - x[i-1] dx[i] dx i x[i] - x[i-1] x[i] x i x[i-1] x i-1 i 1 dy[i] = y[i] - y[i-1] dy[i] dy i y[i] - y[i-1] y[i] y i y[i-1] y i-1 i 1 boolean bl = true; bl true for(int i=0; i<n; i++){
			if(dx[i]+dy[i]>dt[i] || (dx[i]+dy[i]+dt[i])%2!=0){
				bl = false;
				break;
			}
		} int i=0; int i=0; i 0 i<n i n i++ i++ i {
			if(dx[i]+dy[i]>dt[i] || (dx[i]+dy[i]+dt[i])%2!=0){
				bl = false;
				break;
			}
		} {
			if(dx[i]+dy[i]>dt[i] || (dx[i]+dy[i]+dt[i])%2!=0){
				bl = false;
				break;
			}
		} if(dx[i]+dy[i]>dt[i] || (dx[i]+dy[i]+dt[i])%2!=0){
				bl = false;
				break;
			} dx[i]+dy[i]>dt[i] || (dx[i]+dy[i]+dt[i])%2!=0 dx[i]+dy[i]>dt[i] dx[i]+dy[i] dx[i] dx i dy[i] dy i dt[i] dt i (dx[i]+dy[i]+dt[i])%2!=0 (dx[i]+dy[i]+dt[i])%2 (dx[i]+dy[i]+dt[i]) dx[i]+dy[i]+dt[i] dx[i] dx i dy[i] dy i dt[i] dt i 2 0 {
				bl = false;
				break;
			} bl = false bl false break; System.out.println(bl==true ? "Yes" : "No") System.out.println System.out System System.out bl==true ? "Yes" : "No" bl==true bl true "Yes" "No" String[] args args public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] t = new int[n];
		int[] x = new int[n];
		int[] y = new int[n];
		int[] dt = new int[n];
		int[] dx = new int[n];
		int[] dy = new int[n];
		t[0] = sc.nextInt();
		x[0] = sc.nextInt();
		y[0] = sc.nextInt();
		dt[0] = t[0];
		dx[0] = x[0];
		dy[0] = y[0];
		for(int i=1; i<n; i++){			
			t[i] = sc.nextInt();
			x[i] = sc.nextInt();
			y[i] = sc.nextInt();
			dt[i] = t[i] - t[i-1];
			dx[i] = x[i] - x[i-1];
			dy[i] = y[i] - y[i-1];
		}
		boolean bl = true;
		for(int i=0; i<n; i++){
			if(dx[i]+dy[i]>dt[i] || (dx[i]+dy[i]+dt[i])%2!=0){
				bl = false;
				break;
			}
		}
		System.out.println(bl==true ? "Yes" : "No");
	}
} public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] t = new int[n];
		int[] x = new int[n];
		int[] y = new int[n];
		int[] dt = new int[n];
		int[] dx = new int[n];
		int[] dy = new int[n];
		t[0] = sc.nextInt();
		x[0] = sc.nextInt();
		y[0] = sc.nextInt();
		dt[0] = t[0];
		dx[0] = x[0];
		dy[0] = y[0];
		for(int i=1; i<n; i++){			
			t[i] = sc.nextInt();
			x[i] = sc.nextInt();
			y[i] = sc.nextInt();
			dt[i] = t[i] - t[i-1];
			dx[i] = x[i] - x[i-1];
			dy[i] = y[i] - y[i-1];
		}
		boolean bl = true;
		for(int i=0; i<n; i++){
			if(dx[i]+dy[i]>dt[i] || (dx[i]+dy[i]+dt[i])%2!=0){
				bl = false;
				break;
			}
		}
		System.out.println(bl==true ? "Yes" : "No");
	}
} Main
import java.util.*;
public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] t = new int[n];
		int[] x = new int[n];
		int[] y = new int[n];
		int[] dt = new int[n];
		int[] dx = new int[n];
		int[] dy = new int[n];
		t[0] = sc.nextInt();
		x[0] = sc.nextInt();
		y[0] = sc.nextInt();
		dt[0] = t[0];
		dx[0] = x[0];
		dy[0] = y[0];
		for(int i=1; i<n; i++){			
			t[i] = sc.nextInt();
			x[i] = sc.nextInt();
			y[i] = sc.nextInt();
			dt[i] = t[i] - t[i-1];
			dx[i] = x[i] - x[i-1];
			dy[i] = y[i] - y[i-1];
		}
		boolean bl = true;
		for(int i=0; i<n; i++){
			if(dx[i]+dy[i]>dt[i] || (dx[i]+dy[i]+dt[i])%2!=0){
				bl = false;
				break;
			}
		}
		System.out.println(bl==true ? "Yes" : "No");
	}
}