import java.util.*;

public class Main {

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

	public void execute() {
		Scanner sc = new Scanner(System.in);
		final int N = sc.nextInt();

		int x = 0;
		int y = 0;
		int t = 0;
		for (int i = 0; i < N; i++) {
			int ti = sc.nextInt();
			int xi = sc.nextInt();
			int yi = sc.nextInt();
			int dt = ti - t;
			int d = manhattan(x, y, xi, yi);
			if (dt < d) {
				System.out.println("No");
				return;
			} else if ((dt - d) % 2 == 1) {
				System.out.println("No");
				return;
			} else {
				x = xi;
				y = yi;
				t = ti;
			}
		}
		System.out.println("Yes");
		sc.close();
	}

	private int manhattan(int x0, int y0, int x1, int y1) {
		return Math.abs(x0 - x1) + Math.abs(y0 - y1);
	}

} import java.util.*; util.* java public class Main {

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

	public void execute() {
		Scanner sc = new Scanner(System.in);
		final int N = sc.nextInt();

		int x = 0;
		int y = 0;
		int t = 0;
		for (int i = 0; i < N; i++) {
			int ti = sc.nextInt();
			int xi = sc.nextInt();
			int yi = sc.nextInt();
			int dt = ti - t;
			int d = manhattan(x, y, xi, yi);
			if (dt < d) {
				System.out.println("No");
				return;
			} else if ((dt - d) % 2 == 1) {
				System.out.println("No");
				return;
			} else {
				x = xi;
				y = yi;
				t = ti;
			}
		}
		System.out.println("Yes");
		sc.close();
	}

	private int manhattan(int x0, int y0, int x1, int y1) {
		return Math.abs(x0 - x1) + Math.abs(y0 - y1);
	}

} Main public static void main(String[] args) {
		new Main().execute();
	} main {
		new Main().execute();
	} new Main().execute() new Main().execute new Main() String[] args args public void execute() {
		Scanner sc = new Scanner(System.in);
		final int N = sc.nextInt();

		int x = 0;
		int y = 0;
		int t = 0;
		for (int i = 0; i < N; i++) {
			int ti = sc.nextInt();
			int xi = sc.nextInt();
			int yi = sc.nextInt();
			int dt = ti - t;
			int d = manhattan(x, y, xi, yi);
			if (dt < d) {
				System.out.println("No");
				return;
			} else if ((dt - d) % 2 == 1) {
				System.out.println("No");
				return;
			} else {
				x = xi;
				y = yi;
				t = ti;
			}
		}
		System.out.println("Yes");
		sc.close();
	} execute {
		Scanner sc = new Scanner(System.in);
		final int N = sc.nextInt();

		int x = 0;
		int y = 0;
		int t = 0;
		for (int i = 0; i < N; i++) {
			int ti = sc.nextInt();
			int xi = sc.nextInt();
			int yi = sc.nextInt();
			int dt = ti - t;
			int d = manhattan(x, y, xi, yi);
			if (dt < d) {
				System.out.println("No");
				return;
			} else if ((dt - d) % 2 == 1) {
				System.out.println("No");
				return;
			} else {
				x = xi;
				y = yi;
				t = ti;
			}
		}
		System.out.println("Yes");
		sc.close();
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) final int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc int x = 0; x 0 int y = 0; y 0 int t = 0; t 0 for (int i = 0; i < N; i++) {
			int ti = sc.nextInt();
			int xi = sc.nextInt();
			int yi = sc.nextInt();
			int dt = ti - t;
			int d = manhattan(x, y, xi, yi);
			if (dt < d) {
				System.out.println("No");
				return;
			} else if ((dt - d) % 2 == 1) {
				System.out.println("No");
				return;
			} else {
				x = xi;
				y = yi;
				t = ti;
			}
		} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
			int ti = sc.nextInt();
			int xi = sc.nextInt();
			int yi = sc.nextInt();
			int dt = ti - t;
			int d = manhattan(x, y, xi, yi);
			if (dt < d) {
				System.out.println("No");
				return;
			} else if ((dt - d) % 2 == 1) {
				System.out.println("No");
				return;
			} else {
				x = xi;
				y = yi;
				t = ti;
			}
		} {
			int ti = sc.nextInt();
			int xi = sc.nextInt();
			int yi = sc.nextInt();
			int dt = ti - t;
			int d = manhattan(x, y, xi, yi);
			if (dt < d) {
				System.out.println("No");
				return;
			} else if ((dt - d) % 2 == 1) {
				System.out.println("No");
				return;
			} else {
				x = xi;
				y = yi;
				t = ti;
			}
		} int ti = sc.nextInt(); ti sc.nextInt() sc.nextInt sc int xi = sc.nextInt(); xi sc.nextInt() sc.nextInt sc int yi = sc.nextInt(); yi sc.nextInt() sc.nextInt sc int dt = ti - t; dt ti - t ti t int d = manhattan(x, y, xi, yi); d manhattan(x, y, xi, yi) manhattan x y xi yi if (dt < d) {
				System.out.println("No");
				return;
			} else if ((dt - d) % 2 == 1) {
				System.out.println("No");
				return;
			} else {
				x = xi;
				y = yi;
				t = ti;
			} dt < d dt d {
				System.out.println("No");
				return;
			} System.out.println("No") System.out.println System.out System System.out "No" return; if ((dt - d) % 2 == 1) {
				System.out.println("No");
				return;
			} else {
				x = xi;
				y = yi;
				t = ti;
			} (dt - d) % 2 == 1 (dt - d) % 2 (dt - d) dt d 2 1 {
				System.out.println("No");
				return;
			} System.out.println("No") System.out.println System.out System System.out "No" return; {
				x = xi;
				y = yi;
				t = ti;
			} x = xi x xi y = yi y yi t = ti t ti System.out.println("Yes") System.out.println System.out System System.out "Yes" sc.close() sc.close sc private int manhattan(int x0, int y0, int x1, int y1) {
		return Math.abs(x0 - x1) + Math.abs(y0 - y1);
	} manhattan {
		return Math.abs(x0 - x1) + Math.abs(y0 - y1);
	} return Math.abs(x0 - x1) + Math.abs(y0 - y1); Math.abs(x0 - x1) + Math.abs(y0 - y1) Math.abs(x0 - x1) Math.abs Math x0 - x1 x0 x1 Math.abs(y0 - y1) Math.abs Math y0 - y1 y0 y1 int x0 x0 int y0 y0 int x1 x1 int y1 y1 public class Main {

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

	public void execute() {
		Scanner sc = new Scanner(System.in);
		final int N = sc.nextInt();

		int x = 0;
		int y = 0;
		int t = 0;
		for (int i = 0; i < N; i++) {
			int ti = sc.nextInt();
			int xi = sc.nextInt();
			int yi = sc.nextInt();
			int dt = ti - t;
			int d = manhattan(x, y, xi, yi);
			if (dt < d) {
				System.out.println("No");
				return;
			} else if ((dt - d) % 2 == 1) {
				System.out.println("No");
				return;
			} else {
				x = xi;
				y = yi;
				t = ti;
			}
		}
		System.out.println("Yes");
		sc.close();
	}

	private int manhattan(int x0, int y0, int x1, int y1) {
		return Math.abs(x0 - x1) + Math.abs(y0 - y1);
	}

} public class Main {

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

	public void execute() {
		Scanner sc = new Scanner(System.in);
		final int N = sc.nextInt();

		int x = 0;
		int y = 0;
		int t = 0;
		for (int i = 0; i < N; i++) {
			int ti = sc.nextInt();
			int xi = sc.nextInt();
			int yi = sc.nextInt();
			int dt = ti - t;
			int d = manhattan(x, y, xi, yi);
			if (dt < d) {
				System.out.println("No");
				return;
			} else if ((dt - d) % 2 == 1) {
				System.out.println("No");
				return;
			} else {
				x = xi;
				y = yi;
				t = ti;
			}
		}
		System.out.println("Yes");
		sc.close();
	}

	private int manhattan(int x0, int y0, int x1, int y1) {
		return Math.abs(x0 - x1) + Math.abs(y0 - y1);
	}

} Main
import java.util.*;

public class Main {

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

	public void execute() {
		Scanner sc = new Scanner(System.in);
		final int N = sc.nextInt();

		int x = 0;
		int y = 0;
		int t = 0;
		for (int i = 0; i < N; i++) {
			int ti = sc.nextInt();
			int xi = sc.nextInt();
			int yi = sc.nextInt();
			int dt = ti - t;
			int d = manhattan(x, y, xi, yi);
			if (dt < d) {
				System.out.println("No");
				return;
			} else if ((dt - d) % 2 == 1) {
				System.out.println("No");
				return;
			} else {
				x = xi;
				y = yi;
				t = ti;
			}
		}
		System.out.println("Yes");
		sc.close();
	}

	private int manhattan(int x0, int y0, int x1, int y1) {
		return Math.abs(x0 - x1) + Math.abs(y0 - y1);
	}

}