import java.util.Scanner;
public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		boolean flag = true;
		int x1 = 0, y1 = 0, time = 0;	
		for(int i = 0; i < n; i++) {
			int t = sc.nextInt();
			int sa = t - time;
			int x2 = sc.nextInt();
			int y2 = sc.nextInt();
			int dist = Math.abs(x1 - x2) + Math.abs(y1 - y2);
			if (dist > sa || sa % 2 != dist % 2) {
				flag = false;
				break;
			}
			x1 = x2;
			y1 = y2;
			time = t;
		}
		System.out.println(flag ? "Yes" : "No");
	}
} import java.util.Scanner; Scanner java.util public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		boolean flag = true;
		int x1 = 0, y1 = 0, time = 0;	
		for(int i = 0; i < n; i++) {
			int t = sc.nextInt();
			int sa = t - time;
			int x2 = sc.nextInt();
			int y2 = sc.nextInt();
			int dist = Math.abs(x1 - x2) + Math.abs(y1 - y2);
			if (dist > sa || sa % 2 != dist % 2) {
				flag = false;
				break;
			}
			x1 = x2;
			y1 = y2;
			time = t;
		}
		System.out.println(flag ? "Yes" : "No");
	}
} Main public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		boolean flag = true;
		int x1 = 0, y1 = 0, time = 0;	
		for(int i = 0; i < n; i++) {
			int t = sc.nextInt();
			int sa = t - time;
			int x2 = sc.nextInt();
			int y2 = sc.nextInt();
			int dist = Math.abs(x1 - x2) + Math.abs(y1 - y2);
			if (dist > sa || sa % 2 != dist % 2) {
				flag = false;
				break;
			}
			x1 = x2;
			y1 = y2;
			time = t;
		}
		System.out.println(flag ? "Yes" : "No");
	} main {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		boolean flag = true;
		int x1 = 0, y1 = 0, time = 0;	
		for(int i = 0; i < n; i++) {
			int t = sc.nextInt();
			int sa = t - time;
			int x2 = sc.nextInt();
			int y2 = sc.nextInt();
			int dist = Math.abs(x1 - x2) + Math.abs(y1 - y2);
			if (dist > sa || sa % 2 != dist % 2) {
				flag = false;
				break;
			}
			x1 = x2;
			y1 = y2;
			time = t;
		}
		System.out.println(flag ? "Yes" : "No");
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc boolean flag = true; flag true int x1 = 0 x1 0 y1 = 0 y1 0 time = 0; time 0 for(int i = 0; i < n; i++) {
			int t = sc.nextInt();
			int sa = t - time;
			int x2 = sc.nextInt();
			int y2 = sc.nextInt();
			int dist = Math.abs(x1 - x2) + Math.abs(y1 - y2);
			if (dist > sa || sa % 2 != dist % 2) {
				flag = false;
				break;
			}
			x1 = x2;
			y1 = y2;
			time = t;
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			int t = sc.nextInt();
			int sa = t - time;
			int x2 = sc.nextInt();
			int y2 = sc.nextInt();
			int dist = Math.abs(x1 - x2) + Math.abs(y1 - y2);
			if (dist > sa || sa % 2 != dist % 2) {
				flag = false;
				break;
			}
			x1 = x2;
			y1 = y2;
			time = t;
		} {
			int t = sc.nextInt();
			int sa = t - time;
			int x2 = sc.nextInt();
			int y2 = sc.nextInt();
			int dist = Math.abs(x1 - x2) + Math.abs(y1 - y2);
			if (dist > sa || sa % 2 != dist % 2) {
				flag = false;
				break;
			}
			x1 = x2;
			y1 = y2;
			time = t;
		} int t = sc.nextInt(); t sc.nextInt() sc.nextInt sc int sa = t - time; sa t - time t time int x2 = sc.nextInt(); x2 sc.nextInt() sc.nextInt sc int y2 = sc.nextInt(); y2 sc.nextInt() sc.nextInt sc int dist = Math.abs(x1 - x2) + Math.abs(y1 - y2); dist Math.abs(x1 - x2) + Math.abs(y1 - y2) Math.abs(x1 - x2) Math.abs Math x1 - x2 x1 x2 Math.abs(y1 - y2) Math.abs Math y1 - y2 y1 y2 if (dist > sa || sa % 2 != dist % 2) {
				flag = false;
				break;
			} dist > sa || sa % 2 != dist % 2 dist > sa dist sa sa % 2 != dist % 2 sa % 2 sa 2 dist % 2 dist 2 {
				flag = false;
				break;
			} flag = false flag false break; x1 = x2 x1 x2 y1 = y2 y1 y2 time = t time t System.out.println(flag ? "Yes" : "No") System.out.println System.out System System.out flag ? "Yes" : "No" flag "Yes" "No" String[] args args public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		boolean flag = true;
		int x1 = 0, y1 = 0, time = 0;	
		for(int i = 0; i < n; i++) {
			int t = sc.nextInt();
			int sa = t - time;
			int x2 = sc.nextInt();
			int y2 = sc.nextInt();
			int dist = Math.abs(x1 - x2) + Math.abs(y1 - y2);
			if (dist > sa || sa % 2 != dist % 2) {
				flag = false;
				break;
			}
			x1 = x2;
			y1 = y2;
			time = t;
		}
		System.out.println(flag ? "Yes" : "No");
	}
} public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		boolean flag = true;
		int x1 = 0, y1 = 0, time = 0;	
		for(int i = 0; i < n; i++) {
			int t = sc.nextInt();
			int sa = t - time;
			int x2 = sc.nextInt();
			int y2 = sc.nextInt();
			int dist = Math.abs(x1 - x2) + Math.abs(y1 - y2);
			if (dist > sa || sa % 2 != dist % 2) {
				flag = false;
				break;
			}
			x1 = x2;
			y1 = y2;
			time = t;
		}
		System.out.println(flag ? "Yes" : "No");
	}
} Main
import java.util.Scanner;
public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		boolean flag = true;
		int x1 = 0, y1 = 0, time = 0;	
		for(int i = 0; i < n; i++) {
			int t = sc.nextInt();
			int sa = t - time;
			int x2 = sc.nextInt();
			int y2 = sc.nextInt();
			int dist = Math.abs(x1 - x2) + Math.abs(y1 - y2);
			if (dist > sa || sa % 2 != dist % 2) {
				flag = false;
				break;
			}
			x1 = x2;
			y1 = y2;
			time = t;
		}
		System.out.println(flag ? "Yes" : "No");
	}
}