import java.util.Arrays;
import java.util.Scanner;

public class Main {
	void run() {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int loc_x = 0;
		int loc_y = 0;
		int loc_t = 0;
		for(int i = 0; i < n; i++) {
			int t = sc.nextInt();
			int x = sc.nextInt();
			int y = sc.nextInt();
			
			int dis = Math.abs(loc_x-x) + Math.abs(loc_y-y);
			
			if(dis - (t - loc_t) > 0 || ((t - loc_t) - dis) % 2 != 0) {
				System.out.println("No");
				return;
			}
			loc_x = x;
			loc_y = y;
			loc_t = t;
		}
		System.out.println("Yes");
		sc.close();
	}

	void debug(Object... o) {
		System.out.println(Arrays.deepToString(o));
	}

	public static void main(String[] args) {
		new Main().run();
	}
} import java.util.Arrays; Arrays java.util import java.util.Scanner; Scanner java.util public class Main {
	void run() {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int loc_x = 0;
		int loc_y = 0;
		int loc_t = 0;
		for(int i = 0; i < n; i++) {
			int t = sc.nextInt();
			int x = sc.nextInt();
			int y = sc.nextInt();
			
			int dis = Math.abs(loc_x-x) + Math.abs(loc_y-y);
			
			if(dis - (t - loc_t) > 0 || ((t - loc_t) - dis) % 2 != 0) {
				System.out.println("No");
				return;
			}
			loc_x = x;
			loc_y = y;
			loc_t = t;
		}
		System.out.println("Yes");
		sc.close();
	}

	void debug(Object... o) {
		System.out.println(Arrays.deepToString(o));
	}

	public static void main(String[] args) {
		new Main().run();
	}
} Main void run() {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int loc_x = 0;
		int loc_y = 0;
		int loc_t = 0;
		for(int i = 0; i < n; i++) {
			int t = sc.nextInt();
			int x = sc.nextInt();
			int y = sc.nextInt();
			
			int dis = Math.abs(loc_x-x) + Math.abs(loc_y-y);
			
			if(dis - (t - loc_t) > 0 || ((t - loc_t) - dis) % 2 != 0) {
				System.out.println("No");
				return;
			}
			loc_x = x;
			loc_y = y;
			loc_t = t;
		}
		System.out.println("Yes");
		sc.close();
	} run {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int loc_x = 0;
		int loc_y = 0;
		int loc_t = 0;
		for(int i = 0; i < n; i++) {
			int t = sc.nextInt();
			int x = sc.nextInt();
			int y = sc.nextInt();
			
			int dis = Math.abs(loc_x-x) + Math.abs(loc_y-y);
			
			if(dis - (t - loc_t) > 0 || ((t - loc_t) - dis) % 2 != 0) {
				System.out.println("No");
				return;
			}
			loc_x = x;
			loc_y = y;
			loc_t = t;
		}
		System.out.println("Yes");
		sc.close();
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc int loc_x = 0; loc_x 0 int loc_y = 0; loc_y 0 int loc_t = 0; loc_t 0 for(int i = 0; i < n; i++) {
			int t = sc.nextInt();
			int x = sc.nextInt();
			int y = sc.nextInt();
			
			int dis = Math.abs(loc_x-x) + Math.abs(loc_y-y);
			
			if(dis - (t - loc_t) > 0 || ((t - loc_t) - dis) % 2 != 0) {
				System.out.println("No");
				return;
			}
			loc_x = x;
			loc_y = y;
			loc_t = t;
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			int t = sc.nextInt();
			int x = sc.nextInt();
			int y = sc.nextInt();
			
			int dis = Math.abs(loc_x-x) + Math.abs(loc_y-y);
			
			if(dis - (t - loc_t) > 0 || ((t - loc_t) - dis) % 2 != 0) {
				System.out.println("No");
				return;
			}
			loc_x = x;
			loc_y = y;
			loc_t = t;
		} {
			int t = sc.nextInt();
			int x = sc.nextInt();
			int y = sc.nextInt();
			
			int dis = Math.abs(loc_x-x) + Math.abs(loc_y-y);
			
			if(dis - (t - loc_t) > 0 || ((t - loc_t) - dis) % 2 != 0) {
				System.out.println("No");
				return;
			}
			loc_x = x;
			loc_y = y;
			loc_t = t;
		} int t = sc.nextInt(); t sc.nextInt() sc.nextInt sc int x = sc.nextInt(); x sc.nextInt() sc.nextInt sc int y = sc.nextInt(); y sc.nextInt() sc.nextInt sc int dis = Math.abs(loc_x-x) + Math.abs(loc_y-y); dis Math.abs(loc_x-x) + Math.abs(loc_y-y) Math.abs(loc_x-x) Math.abs Math loc_x-x loc_x x Math.abs(loc_y-y) Math.abs Math loc_y-y loc_y y if(dis - (t - loc_t) > 0 || ((t - loc_t) - dis) % 2 != 0) {
				System.out.println("No");
				return;
			} dis - (t - loc_t) > 0 || ((t - loc_t) - dis) % 2 != 0 dis - (t - loc_t) > 0 dis - (t - loc_t) dis (t - loc_t) t loc_t 0 ((t - loc_t) - dis) % 2 != 0 ((t - loc_t) - dis) % 2 ((t - loc_t) - dis) (t - loc_t) t loc_t dis 2 0 {
				System.out.println("No");
				return;
			} System.out.println("No") System.out.println System.out System System.out "No" return; loc_x = x loc_x x loc_y = y loc_y y loc_t = t loc_t t System.out.println("Yes") System.out.println System.out System System.out "Yes" sc.close() sc.close sc void debug(Object... o) {
		System.out.println(Arrays.deepToString(o));
	} debug {
		System.out.println(Arrays.deepToString(o));
	} System.out.println(Arrays.deepToString(o)) System.out.println System.out System System.out Arrays.deepToString(o) Arrays.deepToString Arrays o Object... o o public static void main(String[] args) {
		new Main().run();
	} main {
		new Main().run();
	} new Main().run() new Main().run new Main() String[] args args public class Main {
	void run() {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int loc_x = 0;
		int loc_y = 0;
		int loc_t = 0;
		for(int i = 0; i < n; i++) {
			int t = sc.nextInt();
			int x = sc.nextInt();
			int y = sc.nextInt();
			
			int dis = Math.abs(loc_x-x) + Math.abs(loc_y-y);
			
			if(dis - (t - loc_t) > 0 || ((t - loc_t) - dis) % 2 != 0) {
				System.out.println("No");
				return;
			}
			loc_x = x;
			loc_y = y;
			loc_t = t;
		}
		System.out.println("Yes");
		sc.close();
	}

	void debug(Object... o) {
		System.out.println(Arrays.deepToString(o));
	}

	public static void main(String[] args) {
		new Main().run();
	}
} public class Main {
	void run() {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int loc_x = 0;
		int loc_y = 0;
		int loc_t = 0;
		for(int i = 0; i < n; i++) {
			int t = sc.nextInt();
			int x = sc.nextInt();
			int y = sc.nextInt();
			
			int dis = Math.abs(loc_x-x) + Math.abs(loc_y-y);
			
			if(dis - (t - loc_t) > 0 || ((t - loc_t) - dis) % 2 != 0) {
				System.out.println("No");
				return;
			}
			loc_x = x;
			loc_y = y;
			loc_t = t;
		}
		System.out.println("Yes");
		sc.close();
	}

	void debug(Object... o) {
		System.out.println(Arrays.deepToString(o));
	}

	public static void main(String[] args) {
		new Main().run();
	}
} Main
import java.util.Arrays;
import java.util.Scanner;

public class Main {
	void run() {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int loc_x = 0;
		int loc_y = 0;
		int loc_t = 0;
		for(int i = 0; i < n; i++) {
			int t = sc.nextInt();
			int x = sc.nextInt();
			int y = sc.nextInt();
			
			int dis = Math.abs(loc_x-x) + Math.abs(loc_y-y);
			
			if(dis - (t - loc_t) > 0 || ((t - loc_t) - dis) % 2 != 0) {
				System.out.println("No");
				return;
			}
			loc_x = x;
			loc_y = y;
			loc_t = t;
		}
		System.out.println("Yes");
		sc.close();
	}

	void debug(Object... o) {
		System.out.println(Arrays.deepToString(o));
	}

	public static void main(String[] args) {
		new Main().run();
	}
}