import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());

		List<Integer> t = new ArrayList<Integer>(0);
		List<Integer> x = new ArrayList<Integer>(0);
		List<Integer> y = new ArrayList<Integer>(0);

		t.add(0);
		x.add(0);
		y.add(0);

		for(int n = 0;n<N;n++){
			String[] str = br.readLine().split(" ");
			t.add(Integer.parseInt(str[0]));
			x.add(Integer.parseInt(str[1]));
			y.add(Integer.parseInt(str[2]));
		}

		for(int i = 1;i<=N;i++){
			int dis = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i) - y.get(i-1));
			int time = t.get(i) - t.get(i-1);
			if(time < dis){
				System.out.println("No");
				System.exit(0);
			}

			if(time%2 != dis%2){
				System.out.println("No");
				System.exit(0);
			}

		}
		System.out.println("Yes");

	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.ArrayList; ArrayList java.util import java.util.List; List java.util public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());

		List<Integer> t = new ArrayList<Integer>(0);
		List<Integer> x = new ArrayList<Integer>(0);
		List<Integer> y = new ArrayList<Integer>(0);

		t.add(0);
		x.add(0);
		y.add(0);

		for(int n = 0;n<N;n++){
			String[] str = br.readLine().split(" ");
			t.add(Integer.parseInt(str[0]));
			x.add(Integer.parseInt(str[1]));
			y.add(Integer.parseInt(str[2]));
		}

		for(int i = 1;i<=N;i++){
			int dis = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i) - y.get(i-1));
			int time = t.get(i) - t.get(i-1);
			if(time < dis){
				System.out.println("No");
				System.exit(0);
			}

			if(time%2 != dis%2){
				System.out.println("No");
				System.exit(0);
			}

		}
		System.out.println("Yes");

	}
} Main public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());

		List<Integer> t = new ArrayList<Integer>(0);
		List<Integer> x = new ArrayList<Integer>(0);
		List<Integer> y = new ArrayList<Integer>(0);

		t.add(0);
		x.add(0);
		y.add(0);

		for(int n = 0;n<N;n++){
			String[] str = br.readLine().split(" ");
			t.add(Integer.parseInt(str[0]));
			x.add(Integer.parseInt(str[1]));
			y.add(Integer.parseInt(str[2]));
		}

		for(int i = 1;i<=N;i++){
			int dis = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i) - y.get(i-1));
			int time = t.get(i) - t.get(i-1);
			if(time < dis){
				System.out.println("No");
				System.exit(0);
			}

			if(time%2 != dis%2){
				System.out.println("No");
				System.exit(0);
			}

		}
		System.out.println("Yes");

	} main {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());

		List<Integer> t = new ArrayList<Integer>(0);
		List<Integer> x = new ArrayList<Integer>(0);
		List<Integer> y = new ArrayList<Integer>(0);

		t.add(0);
		x.add(0);
		y.add(0);

		for(int n = 0;n<N;n++){
			String[] str = br.readLine().split(" ");
			t.add(Integer.parseInt(str[0]));
			x.add(Integer.parseInt(str[1]));
			y.add(Integer.parseInt(str[2]));
		}

		for(int i = 1;i<=N;i++){
			int dis = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i) - y.get(i-1));
			int time = t.get(i) - t.get(i-1);
			if(time < dis){
				System.out.println("No");
				System.exit(0);
			}

			if(time%2 != dis%2){
				System.out.println("No");
				System.exit(0);
			}

		}
		System.out.println("Yes");

	} BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) int N = Integer.parseInt(br.readLine()); N Integer.parseInt(br.readLine()) Integer.parseInt Integer br.readLine() br.readLine br List<Integer> t = new ArrayList<Integer>(0); t new ArrayList<Integer>(0) List<Integer> x = new ArrayList<Integer>(0); x new ArrayList<Integer>(0) List<Integer> y = new ArrayList<Integer>(0); y new ArrayList<Integer>(0) t.add(0) t.add t 0 x.add(0) x.add x 0 y.add(0) y.add y 0 for(int n = 0;n<N;n++){
			String[] str = br.readLine().split(" ");
			t.add(Integer.parseInt(str[0]));
			x.add(Integer.parseInt(str[1]));
			y.add(Integer.parseInt(str[2]));
		} int n = 0; int n = 0; n 0 n<N n N n++ n++ n {
			String[] str = br.readLine().split(" ");
			t.add(Integer.parseInt(str[0]));
			x.add(Integer.parseInt(str[1]));
			y.add(Integer.parseInt(str[2]));
		} {
			String[] str = br.readLine().split(" ");
			t.add(Integer.parseInt(str[0]));
			x.add(Integer.parseInt(str[1]));
			y.add(Integer.parseInt(str[2]));
		} String[] str = br.readLine().split(" "); str br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " t.add(Integer.parseInt(str[0])) t.add t Integer.parseInt(str[0]) Integer.parseInt Integer str[0] str 0 x.add(Integer.parseInt(str[1])) x.add x Integer.parseInt(str[1]) Integer.parseInt Integer str[1] str 1 y.add(Integer.parseInt(str[2])) y.add y Integer.parseInt(str[2]) Integer.parseInt Integer str[2] str 2 for(int i = 1;i<=N;i++){
			int dis = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i) - y.get(i-1));
			int time = t.get(i) - t.get(i-1);
			if(time < dis){
				System.out.println("No");
				System.exit(0);
			}

			if(time%2 != dis%2){
				System.out.println("No");
				System.exit(0);
			}

		} int i = 1; int i = 1; i 1 i<=N i N i++ i++ i {
			int dis = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i) - y.get(i-1));
			int time = t.get(i) - t.get(i-1);
			if(time < dis){
				System.out.println("No");
				System.exit(0);
			}

			if(time%2 != dis%2){
				System.out.println("No");
				System.exit(0);
			}

		} {
			int dis = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i) - y.get(i-1));
			int time = t.get(i) - t.get(i-1);
			if(time < dis){
				System.out.println("No");
				System.exit(0);
			}

			if(time%2 != dis%2){
				System.out.println("No");
				System.exit(0);
			}

		} int dis = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i) - y.get(i-1)); dis Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i) - y.get(i-1)) Math.abs(x.get(i)-x.get(i-1)) Math.abs Math x.get(i)-x.get(i-1) x.get(i) x.get x i x.get(i-1) x.get x i-1 i 1 Math.abs(y.get(i) - y.get(i-1)) Math.abs Math y.get(i) - y.get(i-1) y.get(i) y.get y i y.get(i-1) y.get y i-1 i 1 int time = t.get(i) - t.get(i-1); time t.get(i) - t.get(i-1) t.get(i) t.get t i t.get(i-1) t.get t i-1 i 1 if(time < dis){
				System.out.println("No");
				System.exit(0);
			} time < dis time dis {
				System.out.println("No");
				System.exit(0);
			} System.out.println("No") System.out.println System.out System System.out "No" System.exit(0) System.exit System 0 if(time%2 != dis%2){
				System.out.println("No");
				System.exit(0);
			} time%2 != dis%2 time%2 time 2 dis%2 dis 2 {
				System.out.println("No");
				System.exit(0);
			} System.out.println("No") System.out.println System.out System System.out "No" System.exit(0) System.exit System 0 System.out.println("Yes") System.out.println System.out System System.out "Yes" String[] args args public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());

		List<Integer> t = new ArrayList<Integer>(0);
		List<Integer> x = new ArrayList<Integer>(0);
		List<Integer> y = new ArrayList<Integer>(0);

		t.add(0);
		x.add(0);
		y.add(0);

		for(int n = 0;n<N;n++){
			String[] str = br.readLine().split(" ");
			t.add(Integer.parseInt(str[0]));
			x.add(Integer.parseInt(str[1]));
			y.add(Integer.parseInt(str[2]));
		}

		for(int i = 1;i<=N;i++){
			int dis = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i) - y.get(i-1));
			int time = t.get(i) - t.get(i-1);
			if(time < dis){
				System.out.println("No");
				System.exit(0);
			}

			if(time%2 != dis%2){
				System.out.println("No");
				System.exit(0);
			}

		}
		System.out.println("Yes");

	}
} public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());

		List<Integer> t = new ArrayList<Integer>(0);
		List<Integer> x = new ArrayList<Integer>(0);
		List<Integer> y = new ArrayList<Integer>(0);

		t.add(0);
		x.add(0);
		y.add(0);

		for(int n = 0;n<N;n++){
			String[] str = br.readLine().split(" ");
			t.add(Integer.parseInt(str[0]));
			x.add(Integer.parseInt(str[1]));
			y.add(Integer.parseInt(str[2]));
		}

		for(int i = 1;i<=N;i++){
			int dis = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i) - y.get(i-1));
			int time = t.get(i) - t.get(i-1);
			if(time < dis){
				System.out.println("No");
				System.exit(0);
			}

			if(time%2 != dis%2){
				System.out.println("No");
				System.exit(0);
			}

		}
		System.out.println("Yes");

	}
} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());

		List<Integer> t = new ArrayList<Integer>(0);
		List<Integer> x = new ArrayList<Integer>(0);
		List<Integer> y = new ArrayList<Integer>(0);

		t.add(0);
		x.add(0);
		y.add(0);

		for(int n = 0;n<N;n++){
			String[] str = br.readLine().split(" ");
			t.add(Integer.parseInt(str[0]));
			x.add(Integer.parseInt(str[1]));
			y.add(Integer.parseInt(str[2]));
		}

		for(int i = 1;i<=N;i++){
			int dis = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i) - y.get(i-1));
			int time = t.get(i) - t.get(i-1);
			if(time < dis){
				System.out.println("No");
				System.exit(0);
			}

			if(time%2 != dis%2){
				System.out.println("No");
				System.exit(0);
			}

		}
		System.out.println("Yes");

	}
}