/* 
 * シカのAtCoDeerくんは二次元平面上で旅行をしようとしています。 AtCoDeerくんの旅行プランでは、時刻 0 に 点 (0,0) を出発し、 1 以上 N 以下の各 i に対し、時刻 ti に 点 (xi,yi) を訪れる予定です。
 * 
 * AtCoDeerくんが時刻 t に 点 (x,y) にいる時、 時刻 t+1 には 点 (x+1,y), (x−1,y), (x,y+1), (x,y−1) のうちいずれかに存在することができます。 その場にとどまることは出来ないことに注意してください。
 * AtCoDeerくんの旅行プランが実行可能かどうか判定してください。
 */

import java.util.*;
	public class Main{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            //入力
            int n = Integer.parseInt(sc.next());
            
            int t = 0;
            int ti = 0;
            int x = 0;
            int xi = 0;
            int y = 0;
            int yi = 0;
            // 連続する二点間の距離d
            int d = 0;
            
            // 各連続する二点間について考える
            for(int i=0; i<n; i++){
            	ti = Integer.parseInt(sc.next());
            	xi = Integer.parseInt(sc.next());
            	yi = Integer.parseInt(sc.next());
            	
            	d = (int)(Math.abs(xi-x) + Math.abs(yi-y));
            	
            	// dが時間より長い、またdと時間の差が奇数(ちょうど目的地に着けない)ならばNoを出力してreturn
            	if(ti-t < d || (d-ti+t)%2 != 0){
            		System.out.println("No");
                    sc.close();
                    return;
            	}
            	t = ti;
            	x = xi;
            	y = yi;
            }
            
            // どの二点間も旅行可能ならばYesを出力
            System.out.println("Yes");
            sc.close();
        }
    }
	 import java.util.*; util.* java public class Main{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            //入力
            int n = Integer.parseInt(sc.next());
            
            int t = 0;
            int ti = 0;
            int x = 0;
            int xi = 0;
            int y = 0;
            int yi = 0;
            // 連続する二点間の距離d
            int d = 0;
            
            // 各連続する二点間について考える
            for(int i=0; i<n; i++){
            	ti = Integer.parseInt(sc.next());
            	xi = Integer.parseInt(sc.next());
            	yi = Integer.parseInt(sc.next());
            	
            	d = (int)(Math.abs(xi-x) + Math.abs(yi-y));
            	
            	// dが時間より長い、またdと時間の差が奇数(ちょうど目的地に着けない)ならばNoを出力してreturn
            	if(ti-t < d || (d-ti+t)%2 != 0){
            		System.out.println("No");
                    sc.close();
                    return;
            	}
            	t = ti;
            	x = xi;
            	y = yi;
            }
            
            // どの二点間も旅行可能ならばYesを出力
            System.out.println("Yes");
            sc.close();
        }
    } Main public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            //入力
            int n = Integer.parseInt(sc.next());
            
            int t = 0;
            int ti = 0;
            int x = 0;
            int xi = 0;
            int y = 0;
            int yi = 0;
            // 連続する二点間の距離d
            int d = 0;
            
            // 各連続する二点間について考える
            for(int i=0; i<n; i++){
            	ti = Integer.parseInt(sc.next());
            	xi = Integer.parseInt(sc.next());
            	yi = Integer.parseInt(sc.next());
            	
            	d = (int)(Math.abs(xi-x) + Math.abs(yi-y));
            	
            	// dが時間より長い、またdと時間の差が奇数(ちょうど目的地に着けない)ならばNoを出力してreturn
            	if(ti-t < d || (d-ti+t)%2 != 0){
            		System.out.println("No");
                    sc.close();
                    return;
            	}
            	t = ti;
            	x = xi;
            	y = yi;
            }
            
            // どの二点間も旅行可能ならばYesを出力
            System.out.println("Yes");
            sc.close();
        } main {
            Scanner sc = new Scanner(System.in);
            //入力
            int n = Integer.parseInt(sc.next());
            
            int t = 0;
            int ti = 0;
            int x = 0;
            int xi = 0;
            int y = 0;
            int yi = 0;
            // 連続する二点間の距離d
            int d = 0;
            
            // 各連続する二点間について考える
            for(int i=0; i<n; i++){
            	ti = Integer.parseInt(sc.next());
            	xi = Integer.parseInt(sc.next());
            	yi = Integer.parseInt(sc.next());
            	
            	d = (int)(Math.abs(xi-x) + Math.abs(yi-y));
            	
            	// dが時間より長い、またdと時間の差が奇数(ちょうど目的地に着けない)ならばNoを出力してreturn
            	if(ti-t < d || (d-ti+t)%2 != 0){
            		System.out.println("No");
                    sc.close();
                    return;
            	}
            	t = ti;
            	x = xi;
            	y = yi;
            }
            
            // どの二点間も旅行可能ならばYesを出力
            System.out.println("Yes");
            sc.close();
        } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = Integer.parseInt(sc.next()); n Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc int t = 0; t 0 int ti = 0; ti 0 int x = 0; x 0 int xi = 0; xi 0 int y = 0; y 0 int yi = 0; yi 0 int d = 0; d 0 for(int i=0; i<n; i++){
            	ti = Integer.parseInt(sc.next());
            	xi = Integer.parseInt(sc.next());
            	yi = Integer.parseInt(sc.next());
            	
            	d = (int)(Math.abs(xi-x) + Math.abs(yi-y));
            	
            	// dが時間より長い、またdと時間の差が奇数(ちょうど目的地に着けない)ならばNoを出力してreturn
            	if(ti-t < d || (d-ti+t)%2 != 0){
            		System.out.println("No");
                    sc.close();
                    return;
            	}
            	t = ti;
            	x = xi;
            	y = yi;
            } int i=0; int i=0; i 0 i<n i n i++ i++ i {
            	ti = Integer.parseInt(sc.next());
            	xi = Integer.parseInt(sc.next());
            	yi = Integer.parseInt(sc.next());
            	
            	d = (int)(Math.abs(xi-x) + Math.abs(yi-y));
            	
            	// dが時間より長い、またdと時間の差が奇数(ちょうど目的地に着けない)ならばNoを出力してreturn
            	if(ti-t < d || (d-ti+t)%2 != 0){
            		System.out.println("No");
                    sc.close();
                    return;
            	}
            	t = ti;
            	x = xi;
            	y = yi;
            } {
            	ti = Integer.parseInt(sc.next());
            	xi = Integer.parseInt(sc.next());
            	yi = Integer.parseInt(sc.next());
            	
            	d = (int)(Math.abs(xi-x) + Math.abs(yi-y));
            	
            	// dが時間より長い、またdと時間の差が奇数(ちょうど目的地に着けない)ならばNoを出力してreturn
            	if(ti-t < d || (d-ti+t)%2 != 0){
            		System.out.println("No");
                    sc.close();
                    return;
            	}
            	t = ti;
            	x = xi;
            	y = yi;
            } ti = Integer.parseInt(sc.next()) ti Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc xi = Integer.parseInt(sc.next()) xi Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc yi = Integer.parseInt(sc.next()) yi Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc d = (int)(Math.abs(xi-x) + Math.abs(yi-y)) d (int)(Math.abs(xi-x) + Math.abs(yi-y)) Math.abs(xi-x) Math.abs Math xi-x xi x Math.abs(yi-y) Math.abs Math yi-y yi y if(ti-t < d || (d-ti+t)%2 != 0){
            		System.out.println("No");
                    sc.close();
                    return;
            	} ti-t < d || (d-ti+t)%2 != 0 ti-t < d ti-t ti t d (d-ti+t)%2 != 0 (d-ti+t)%2 (d-ti+t) d-ti d ti t 2 0 {
            		System.out.println("No");
                    sc.close();
                    return;
            	} System.out.println("No") System.out.println System.out System System.out "No" sc.close() sc.close sc return; t = ti t ti x = xi x xi y = yi y yi System.out.println("Yes") System.out.println System.out System System.out "Yes" sc.close() sc.close sc String[] args args public class Main{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            //入力
            int n = Integer.parseInt(sc.next());
            
            int t = 0;
            int ti = 0;
            int x = 0;
            int xi = 0;
            int y = 0;
            int yi = 0;
            // 連続する二点間の距離d
            int d = 0;
            
            // 各連続する二点間について考える
            for(int i=0; i<n; i++){
            	ti = Integer.parseInt(sc.next());
            	xi = Integer.parseInt(sc.next());
            	yi = Integer.parseInt(sc.next());
            	
            	d = (int)(Math.abs(xi-x) + Math.abs(yi-y));
            	
            	// dが時間より長い、またdと時間の差が奇数(ちょうど目的地に着けない)ならばNoを出力してreturn
            	if(ti-t < d || (d-ti+t)%2 != 0){
            		System.out.println("No");
                    sc.close();
                    return;
            	}
            	t = ti;
            	x = xi;
            	y = yi;
            }
            
            // どの二点間も旅行可能ならばYesを出力
            System.out.println("Yes");
            sc.close();
        }
    } public class Main{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            //入力
            int n = Integer.parseInt(sc.next());
            
            int t = 0;
            int ti = 0;
            int x = 0;
            int xi = 0;
            int y = 0;
            int yi = 0;
            // 連続する二点間の距離d
            int d = 0;
            
            // 各連続する二点間について考える
            for(int i=0; i<n; i++){
            	ti = Integer.parseInt(sc.next());
            	xi = Integer.parseInt(sc.next());
            	yi = Integer.parseInt(sc.next());
            	
            	d = (int)(Math.abs(xi-x) + Math.abs(yi-y));
            	
            	// dが時間より長い、またdと時間の差が奇数(ちょうど目的地に着けない)ならばNoを出力してreturn
            	if(ti-t < d || (d-ti+t)%2 != 0){
            		System.out.println("No");
                    sc.close();
                    return;
            	}
            	t = ti;
            	x = xi;
            	y = yi;
            }
            
            // どの二点間も旅行可能ならばYesを出力
            System.out.println("Yes");
            sc.close();
        }
    } Main
/* 
 * シカのAtCoDeerくんは二次元平面上で旅行をしようとしています。 AtCoDeerくんの旅行プランでは、時刻 0 に 点 (0,0) を出発し、 1 以上 N 以下の各 i に対し、時刻 ti に 点 (xi,yi) を訪れる予定です。
 * 
 * AtCoDeerくんが時刻 t に 点 (x,y) にいる時、 時刻 t+1 には 点 (x+1,y), (x−1,y), (x,y+1), (x,y−1) のうちいずれかに存在することができます。 その場にとどまることは出来ないことに注意してください。
 * AtCoDeerくんの旅行プランが実行可能かどうか判定してください。
 */

import java.util.*;
	public class Main{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            //入力
            int n = Integer.parseInt(sc.next());
            
            int t = 0;
            int ti = 0;
            int x = 0;
            int xi = 0;
            int y = 0;
            int yi = 0;
            // 連続する二点間の距離d
            int d = 0;
            
            // 各連続する二点間について考える
            for(int i=0; i<n; i++){
            	ti = Integer.parseInt(sc.next());
            	xi = Integer.parseInt(sc.next());
            	yi = Integer.parseInt(sc.next());
            	
            	d = (int)(Math.abs(xi-x) + Math.abs(yi-y));
            	
            	// dが時間より長い、またdと時間の差が奇数(ちょうど目的地に着けない)ならばNoを出力してreturn
            	if(ti-t < d || (d-ti+t)%2 != 0){
            		System.out.println("No");
                    sc.close();
                    return;
            	}
            	t = ti;
            	x = xi;
            	y = yi;
            }
            
            // どの二点間も旅行可能ならばYesを出力
            System.out.println("Yes");
            sc.close();
        }
    }
	