import java.util.Scanner;

public class Main{
    public  static void main(String[] args) {
    	try (Scanner sc = new Scanner(System.in)) {
    		int N=sc.nextInt();
    		int[] t=new int[100001];
    		int[] x=new int[100001];
    		int[] y=new int[100001];
    		for(int i=0; i<N; i++) {
    			t[i+1]=sc.nextInt();
    			x[i+1]=sc.nextInt();
    			y[i+1]=sc.nextInt();
    		}
    		boolean can=true;
    		for(int i=0; i<N; i++) {
    			int dt=t[i+1]-t[i];
    			int dist=Math.abs(x[i+1]-x[i])+Math.abs(y[i+1]-y[i]);
    			if(dt<dist) {
    				can=false;
    			}
    			if(dist%2!=dt%2) {
    				can=false;
    			}
    		}
    		if(can)	System.out.println("Yes");
    		else	System.out.println("No");
    	}
    }
}
/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz