import java.util.Scanner;

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

	int N = scan.nextInt();  //点の個数
	int now_t = 0;
	int now_x = 0;
	int now_y = 0;
	
	int[] t_ = new int[N];
	int[] x_ = new int[N];
	int[] y_ = new int[N];

	for(int i = 0; i < N; i++){
	    t_[i] = scan.nextInt();
	    x_[i] = scan.nextInt();
	    y_[i] = scan.nextInt();
	}

	int flag = 1;
	for(int i = 0; i < N; i++){
	    int len_t = t_[i]-now_t;
	    int len_x = Math.abs(now_x-x_[i]);
	    int len_y = Math.abs(now_y-y_[i]);
	    if(len_t >= len_x+len_y &&
	       (len_t-len_x-len_y) % 2 == 0){
		//移動できる
		now_t = t_[i];
		now_x = x_[i];
		now_y = y_[i];
	    }else{
		flag = -1;
		break;
	    }
	}

	if(flag == 1){
	    System.out.println("Yes");
	}else{
	    System.out.println("No");
	}
    }
} import java.util.Scanner; Scanner java.util public class Main{
    public static void main(String[] args){
	Scanner scan = new Scanner(System.in);

	int N = scan.nextInt();  //点の個数
	int now_t = 0;
	int now_x = 0;
	int now_y = 0;
	
	int[] t_ = new int[N];
	int[] x_ = new int[N];
	int[] y_ = new int[N];

	for(int i = 0; i < N; i++){
	    t_[i] = scan.nextInt();
	    x_[i] = scan.nextInt();
	    y_[i] = scan.nextInt();
	}

	int flag = 1;
	for(int i = 0; i < N; i++){
	    int len_t = t_[i]-now_t;
	    int len_x = Math.abs(now_x-x_[i]);
	    int len_y = Math.abs(now_y-y_[i]);
	    if(len_t >= len_x+len_y &&
	       (len_t-len_x-len_y) % 2 == 0){
		//移動できる
		now_t = t_[i];
		now_x = x_[i];
		now_y = y_[i];
	    }else{
		flag = -1;
		break;
	    }
	}

	if(flag == 1){
	    System.out.println("Yes");
	}else{
	    System.out.println("No");
	}
    }
} Main public static void main(String[] args){
	Scanner scan = new Scanner(System.in);

	int N = scan.nextInt();  //点の個数
	int now_t = 0;
	int now_x = 0;
	int now_y = 0;
	
	int[] t_ = new int[N];
	int[] x_ = new int[N];
	int[] y_ = new int[N];

	for(int i = 0; i < N; i++){
	    t_[i] = scan.nextInt();
	    x_[i] = scan.nextInt();
	    y_[i] = scan.nextInt();
	}

	int flag = 1;
	for(int i = 0; i < N; i++){
	    int len_t = t_[i]-now_t;
	    int len_x = Math.abs(now_x-x_[i]);
	    int len_y = Math.abs(now_y-y_[i]);
	    if(len_t >= len_x+len_y &&
	       (len_t-len_x-len_y) % 2 == 0){
		//移動できる
		now_t = t_[i];
		now_x = x_[i];
		now_y = y_[i];
	    }else{
		flag = -1;
		break;
	    }
	}

	if(flag == 1){
	    System.out.println("Yes");
	}else{
	    System.out.println("No");
	}
    } main {
	Scanner scan = new Scanner(System.in);

	int N = scan.nextInt();  //点の個数
	int now_t = 0;
	int now_x = 0;
	int now_y = 0;
	
	int[] t_ = new int[N];
	int[] x_ = new int[N];
	int[] y_ = new int[N];

	for(int i = 0; i < N; i++){
	    t_[i] = scan.nextInt();
	    x_[i] = scan.nextInt();
	    y_[i] = scan.nextInt();
	}

	int flag = 1;
	for(int i = 0; i < N; i++){
	    int len_t = t_[i]-now_t;
	    int len_x = Math.abs(now_x-x_[i]);
	    int len_y = Math.abs(now_y-y_[i]);
	    if(len_t >= len_x+len_y &&
	       (len_t-len_x-len_y) % 2 == 0){
		//移動できる
		now_t = t_[i];
		now_x = x_[i];
		now_y = y_[i];
	    }else{
		flag = -1;
		break;
	    }
	}

	if(flag == 1){
	    System.out.println("Yes");
	}else{
	    System.out.println("No");
	}
    } Scanner scan = new Scanner(System.in); scan new Scanner(System.in) int N = scan.nextInt(); N scan.nextInt() scan.nextInt scan int now_t = 0; now_t 0 int now_x = 0; now_x 0 int now_y = 0; now_y 0 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 for(int i = 0; i < N; i++){
	    t_[i] = scan.nextInt();
	    x_[i] = scan.nextInt();
	    y_[i] = scan.nextInt();
	} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
	    t_[i] = scan.nextInt();
	    x_[i] = scan.nextInt();
	    y_[i] = scan.nextInt();
	} {
	    t_[i] = scan.nextInt();
	    x_[i] = scan.nextInt();
	    y_[i] = scan.nextInt();
	} t_[i] = scan.nextInt() t_[i] t_ i scan.nextInt() scan.nextInt scan x_[i] = scan.nextInt() x_[i] x_ i scan.nextInt() scan.nextInt scan y_[i] = scan.nextInt() y_[i] y_ i scan.nextInt() scan.nextInt scan int flag = 1; flag 1 for(int i = 0; i < N; i++){
	    int len_t = t_[i]-now_t;
	    int len_x = Math.abs(now_x-x_[i]);
	    int len_y = Math.abs(now_y-y_[i]);
	    if(len_t >= len_x+len_y &&
	       (len_t-len_x-len_y) % 2 == 0){
		//移動できる
		now_t = t_[i];
		now_x = x_[i];
		now_y = y_[i];
	    }else{
		flag = -1;
		break;
	    }
	} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
	    int len_t = t_[i]-now_t;
	    int len_x = Math.abs(now_x-x_[i]);
	    int len_y = Math.abs(now_y-y_[i]);
	    if(len_t >= len_x+len_y &&
	       (len_t-len_x-len_y) % 2 == 0){
		//移動できる
		now_t = t_[i];
		now_x = x_[i];
		now_y = y_[i];
	    }else{
		flag = -1;
		break;
	    }
	} {
	    int len_t = t_[i]-now_t;
	    int len_x = Math.abs(now_x-x_[i]);
	    int len_y = Math.abs(now_y-y_[i]);
	    if(len_t >= len_x+len_y &&
	       (len_t-len_x-len_y) % 2 == 0){
		//移動できる
		now_t = t_[i];
		now_x = x_[i];
		now_y = y_[i];
	    }else{
		flag = -1;
		break;
	    }
	} int len_t = t_[i]-now_t; len_t t_[i]-now_t t_[i] t_ i now_t int len_x = Math.abs(now_x-x_[i]); len_x Math.abs(now_x-x_[i]) Math.abs Math now_x-x_[i] now_x x_[i] x_ i int len_y = Math.abs(now_y-y_[i]); len_y Math.abs(now_y-y_[i]) Math.abs Math now_y-y_[i] now_y y_[i] y_ i if(len_t >= len_x+len_y &&
	       (len_t-len_x-len_y) % 2 == 0){
		//移動できる
		now_t = t_[i];
		now_x = x_[i];
		now_y = y_[i];
	    }else{
		flag = -1;
		break;
	    } len_t >= len_x+len_y &&
	       (len_t-len_x-len_y) % 2 == 0 len_t >= len_x+len_y len_t len_x+len_y len_x len_y (len_t-len_x-len_y) % 2 == 0 (len_t-len_x-len_y) % 2 (len_t-len_x-len_y) len_t-len_x-len_y len_t len_x len_y 2 0 {
		//移動できる
		now_t = t_[i];
		now_x = x_[i];
		now_y = y_[i];
	    } now_t = t_[i] now_t t_[i] t_ i now_x = x_[i] now_x x_[i] x_ i now_y = y_[i] now_y y_[i] y_ i {
		flag = -1;
		break;
	    } flag = -1 flag -1 1 break; if(flag == 1){
	    System.out.println("Yes");
	}else{
	    System.out.println("No");
	} flag == 1 flag 1 {
	    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" String[] args args public class Main{
    public static void main(String[] args){
	Scanner scan = new Scanner(System.in);

	int N = scan.nextInt();  //点の個数
	int now_t = 0;
	int now_x = 0;
	int now_y = 0;
	
	int[] t_ = new int[N];
	int[] x_ = new int[N];
	int[] y_ = new int[N];

	for(int i = 0; i < N; i++){
	    t_[i] = scan.nextInt();
	    x_[i] = scan.nextInt();
	    y_[i] = scan.nextInt();
	}

	int flag = 1;
	for(int i = 0; i < N; i++){
	    int len_t = t_[i]-now_t;
	    int len_x = Math.abs(now_x-x_[i]);
	    int len_y = Math.abs(now_y-y_[i]);
	    if(len_t >= len_x+len_y &&
	       (len_t-len_x-len_y) % 2 == 0){
		//移動できる
		now_t = t_[i];
		now_x = x_[i];
		now_y = y_[i];
	    }else{
		flag = -1;
		break;
	    }
	}

	if(flag == 1){
	    System.out.println("Yes");
	}else{
	    System.out.println("No");
	}
    }
} public class Main{
    public static void main(String[] args){
	Scanner scan = new Scanner(System.in);

	int N = scan.nextInt();  //点の個数
	int now_t = 0;
	int now_x = 0;
	int now_y = 0;
	
	int[] t_ = new int[N];
	int[] x_ = new int[N];
	int[] y_ = new int[N];

	for(int i = 0; i < N; i++){
	    t_[i] = scan.nextInt();
	    x_[i] = scan.nextInt();
	    y_[i] = scan.nextInt();
	}

	int flag = 1;
	for(int i = 0; i < N; i++){
	    int len_t = t_[i]-now_t;
	    int len_x = Math.abs(now_x-x_[i]);
	    int len_y = Math.abs(now_y-y_[i]);
	    if(len_t >= len_x+len_y &&
	       (len_t-len_x-len_y) % 2 == 0){
		//移動できる
		now_t = t_[i];
		now_x = x_[i];
		now_y = y_[i];
	    }else{
		flag = -1;
		break;
	    }
	}

	if(flag == 1){
	    System.out.println("Yes");
	}else{
	    System.out.println("No");
	}
    }
} Main
import java.util.Scanner;

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

	int N = scan.nextInt();  //点の個数
	int now_t = 0;
	int now_x = 0;
	int now_y = 0;
	
	int[] t_ = new int[N];
	int[] x_ = new int[N];
	int[] y_ = new int[N];

	for(int i = 0; i < N; i++){
	    t_[i] = scan.nextInt();
	    x_[i] = scan.nextInt();
	    y_[i] = scan.nextInt();
	}

	int flag = 1;
	for(int i = 0; i < N; i++){
	    int len_t = t_[i]-now_t;
	    int len_x = Math.abs(now_x-x_[i]);
	    int len_y = Math.abs(now_y-y_[i]);
	    if(len_t >= len_x+len_y &&
	       (len_t-len_x-len_y) % 2 == 0){
		//移動できる
		now_t = t_[i];
		now_x = x_[i];
		now_y = y_[i];
	    }else{
		flag = -1;
		break;
	    }
	}

	if(flag == 1){
	    System.out.println("Yes");
	}else{
	    System.out.println("No");
	}
    }
}
