import java.io.IOException;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) throws IOException{
		Traveling solver = new Traveling();
		solver.readInput();
		solver.solve();
		solver.writeOutput();
	}

	static class Traveling {

		private int n;
		private int t[];
		private int x[];
		private int y[];
		private Scanner scanner;
		private String output;

		public Traveling() {
			scanner = new Scanner(System.in);
		}

		public void readInput() {
			n = Integer.parseInt(scanner.next());

			t = new int[n];
			x = new int[n];
			y = new int[n];

			for(int i=0; i<n; i++) {
				t[i] = Integer.parseInt(scanner.next());
				x[i] = Integer.parseInt(scanner.next());
				y[i] = Integer.parseInt(scanner.next());
			}

			return ;
		}

		public void solve() {
			for(int i=0; i<n; i++) {
				if(t[i] < (x[i]+y[i]) || (t[i]%2 != (x[i]+y[i])%2)) {
					output = "No";
					return;
				}
			}
			output = "Yes";
		}
		public void writeOutput() {
			System.out.println(output);
			return ;
		}
	}
} import java.io.IOException; IOException java.io import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) throws IOException{
		Traveling solver = new Traveling();
		solver.readInput();
		solver.solve();
		solver.writeOutput();
	}

	static class Traveling {

		private int n;
		private int t[];
		private int x[];
		private int y[];
		private Scanner scanner;
		private String output;

		public Traveling() {
			scanner = new Scanner(System.in);
		}

		public void readInput() {
			n = Integer.parseInt(scanner.next());

			t = new int[n];
			x = new int[n];
			y = new int[n];

			for(int i=0; i<n; i++) {
				t[i] = Integer.parseInt(scanner.next());
				x[i] = Integer.parseInt(scanner.next());
				y[i] = Integer.parseInt(scanner.next());
			}

			return ;
		}

		public void solve() {
			for(int i=0; i<n; i++) {
				if(t[i] < (x[i]+y[i]) || (t[i]%2 != (x[i]+y[i])%2)) {
					output = "No";
					return;
				}
			}
			output = "Yes";
		}
		public void writeOutput() {
			System.out.println(output);
			return ;
		}
	}
} Main public static void main(String[] args) throws IOException{
		Traveling solver = new Traveling();
		solver.readInput();
		solver.solve();
		solver.writeOutput();
	} main {
		Traveling solver = new Traveling();
		solver.readInput();
		solver.solve();
		solver.writeOutput();
	} Traveling solver = new Traveling(); solver new Traveling() solver.readInput() solver.readInput solver solver.solve() solver.solve solver solver.writeOutput() solver.writeOutput solver String[] args args static class Traveling {

		private int n;
		private int t[];
		private int x[];
		private int y[];
		private Scanner scanner;
		private String output;

		public Traveling() {
			scanner = new Scanner(System.in);
		}

		public void readInput() {
			n = Integer.parseInt(scanner.next());

			t = new int[n];
			x = new int[n];
			y = new int[n];

			for(int i=0; i<n; i++) {
				t[i] = Integer.parseInt(scanner.next());
				x[i] = Integer.parseInt(scanner.next());
				y[i] = Integer.parseInt(scanner.next());
			}

			return ;
		}

		public void solve() {
			for(int i=0; i<n; i++) {
				if(t[i] < (x[i]+y[i]) || (t[i]%2 != (x[i]+y[i])%2)) {
					output = "No";
					return;
				}
			}
			output = "Yes";
		}
		public void writeOutput() {
			System.out.println(output);
			return ;
		}
	} Traveling private int n; n private int t[]; t private int x[]; x private int y[]; y private Scanner scanner; scanner private String output; output public Traveling() {
			scanner = new Scanner(System.in);
		} Traveling {
			scanner = new Scanner(System.in);
		} scanner = new Scanner(System.in) scanner new Scanner(System.in) public void readInput() {
			n = Integer.parseInt(scanner.next());

			t = new int[n];
			x = new int[n];
			y = new int[n];

			for(int i=0; i<n; i++) {
				t[i] = Integer.parseInt(scanner.next());
				x[i] = Integer.parseInt(scanner.next());
				y[i] = Integer.parseInt(scanner.next());
			}

			return ;
		} readInput {
			n = Integer.parseInt(scanner.next());

			t = new int[n];
			x = new int[n];
			y = new int[n];

			for(int i=0; i<n; i++) {
				t[i] = Integer.parseInt(scanner.next());
				x[i] = Integer.parseInt(scanner.next());
				y[i] = Integer.parseInt(scanner.next());
			}

			return ;
		} n = Integer.parseInt(scanner.next()) n Integer.parseInt(scanner.next()) Integer.parseInt Integer scanner.next() scanner.next scanner t = new int[n] t new int[n] n x = new int[n] x new int[n] n y = new int[n] y new int[n] n for(int i=0; i<n; i++) {
				t[i] = Integer.parseInt(scanner.next());
				x[i] = Integer.parseInt(scanner.next());
				y[i] = Integer.parseInt(scanner.next());
			} int i=0; int i=0; i 0 i<n i n i++ i++ i {
				t[i] = Integer.parseInt(scanner.next());
				x[i] = Integer.parseInt(scanner.next());
				y[i] = Integer.parseInt(scanner.next());
			} {
				t[i] = Integer.parseInt(scanner.next());
				x[i] = Integer.parseInt(scanner.next());
				y[i] = Integer.parseInt(scanner.next());
			} t[i] = Integer.parseInt(scanner.next()) t[i] t i Integer.parseInt(scanner.next()) Integer.parseInt Integer scanner.next() scanner.next scanner x[i] = Integer.parseInt(scanner.next()) x[i] x i Integer.parseInt(scanner.next()) Integer.parseInt Integer scanner.next() scanner.next scanner y[i] = Integer.parseInt(scanner.next()) y[i] y i Integer.parseInt(scanner.next()) Integer.parseInt Integer scanner.next() scanner.next scanner return ; public void solve() {
			for(int i=0; i<n; i++) {
				if(t[i] < (x[i]+y[i]) || (t[i]%2 != (x[i]+y[i])%2)) {
					output = "No";
					return;
				}
			}
			output = "Yes";
		} solve {
			for(int i=0; i<n; i++) {
				if(t[i] < (x[i]+y[i]) || (t[i]%2 != (x[i]+y[i])%2)) {
					output = "No";
					return;
				}
			}
			output = "Yes";
		} for(int i=0; i<n; i++) {
				if(t[i] < (x[i]+y[i]) || (t[i]%2 != (x[i]+y[i])%2)) {
					output = "No";
					return;
				}
			} int i=0; int i=0; i 0 i<n i n i++ i++ i {
				if(t[i] < (x[i]+y[i]) || (t[i]%2 != (x[i]+y[i])%2)) {
					output = "No";
					return;
				}
			} {
				if(t[i] < (x[i]+y[i]) || (t[i]%2 != (x[i]+y[i])%2)) {
					output = "No";
					return;
				}
			} if(t[i] < (x[i]+y[i]) || (t[i]%2 != (x[i]+y[i])%2)) {
					output = "No";
					return;
				} t[i] < (x[i]+y[i]) || (t[i]%2 != (x[i]+y[i])%2) t[i] < (x[i]+y[i]) t[i] t i (x[i]+y[i]) x[i] x i y[i] y i (t[i]%2 != (x[i]+y[i])%2) t[i]%2 t[i] t i 2 (x[i]+y[i])%2 (x[i]+y[i]) x[i] x i y[i] y i 2 {
					output = "No";
					return;
				} output = "No" output "No" return; output = "Yes" output "Yes" public void writeOutput() {
			System.out.println(output);
			return ;
		} writeOutput {
			System.out.println(output);
			return ;
		} System.out.println(output) System.out.println System.out System System.out output return ; public class Main {
	public static void main(String[] args) throws IOException{
		Traveling solver = new Traveling();
		solver.readInput();
		solver.solve();
		solver.writeOutput();
	}

	static class Traveling {

		private int n;
		private int t[];
		private int x[];
		private int y[];
		private Scanner scanner;
		private String output;

		public Traveling() {
			scanner = new Scanner(System.in);
		}

		public void readInput() {
			n = Integer.parseInt(scanner.next());

			t = new int[n];
			x = new int[n];
			y = new int[n];

			for(int i=0; i<n; i++) {
				t[i] = Integer.parseInt(scanner.next());
				x[i] = Integer.parseInt(scanner.next());
				y[i] = Integer.parseInt(scanner.next());
			}

			return ;
		}

		public void solve() {
			for(int i=0; i<n; i++) {
				if(t[i] < (x[i]+y[i]) || (t[i]%2 != (x[i]+y[i])%2)) {
					output = "No";
					return;
				}
			}
			output = "Yes";
		}
		public void writeOutput() {
			System.out.println(output);
			return ;
		}
	}
} public class Main {
	public static void main(String[] args) throws IOException{
		Traveling solver = new Traveling();
		solver.readInput();
		solver.solve();
		solver.writeOutput();
	}

	static class Traveling {

		private int n;
		private int t[];
		private int x[];
		private int y[];
		private Scanner scanner;
		private String output;

		public Traveling() {
			scanner = new Scanner(System.in);
		}

		public void readInput() {
			n = Integer.parseInt(scanner.next());

			t = new int[n];
			x = new int[n];
			y = new int[n];

			for(int i=0; i<n; i++) {
				t[i] = Integer.parseInt(scanner.next());
				x[i] = Integer.parseInt(scanner.next());
				y[i] = Integer.parseInt(scanner.next());
			}

			return ;
		}

		public void solve() {
			for(int i=0; i<n; i++) {
				if(t[i] < (x[i]+y[i]) || (t[i]%2 != (x[i]+y[i])%2)) {
					output = "No";
					return;
				}
			}
			output = "Yes";
		}
		public void writeOutput() {
			System.out.println(output);
			return ;
		}
	}
} Main
import java.io.IOException;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) throws IOException{
		Traveling solver = new Traveling();
		solver.readInput();
		solver.solve();
		solver.writeOutput();
	}

	static class Traveling {

		private int n;
		private int t[];
		private int x[];
		private int y[];
		private Scanner scanner;
		private String output;

		public Traveling() {
			scanner = new Scanner(System.in);
		}

		public void readInput() {
			n = Integer.parseInt(scanner.next());

			t = new int[n];
			x = new int[n];
			y = new int[n];

			for(int i=0; i<n; i++) {
				t[i] = Integer.parseInt(scanner.next());
				x[i] = Integer.parseInt(scanner.next());
				y[i] = Integer.parseInt(scanner.next());
			}

			return ;
		}

		public void solve() {
			for(int i=0; i<n; i++) {
				if(t[i] < (x[i]+y[i]) || (t[i]%2 != (x[i]+y[i])%2)) {
					output = "No";
					return;
				}
			}
			output = "Yes";
		}
		public void writeOutput() {
			System.out.println(output);
			return ;
		}
	}
}