import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.StringTokenizer;

/**
 * Built using CHelper plug-in Actual solution is at the top
 */

public class Main {
	public static void main(String[] args) {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		InputReader in = new InputReader(inputStream);
		PrintWriter out = new PrintWriter(outputStream);
		Task solver = new Task();
		solver.solve(1, in, out);
		out.close();
	}

	static class Task {
		public void solve(int testNumber, InputReader in, PrintWriter out) {
		int N = in.nextInt();
		int[] t = new int[N + 1];
		int[] x = new int[N + 1];
		int[] y = new int[N + 1];
		t[0] = 0;
		x[0] = 0;
		y[0] = 0;
		String ans = "Yes";
		
		for(int i = 0; i < N; i++) {
			t[i] = in.nextInt();
			x[i] = in.nextInt();
			y[i] = in.nextInt();
		}
		
		for(int i = 1; i <= N; i++) {
			int dif_t = Math.abs(t[i] - t[i - 1]);
			int dif_x = Math.abs(x[i] - x[i - 1]);
			int dif_y = Math.abs(y[i] - y[i - 1]);
			
			if(dif_t >= dif_x + dif_y && (dif_t - dif_x + dif_y) % 2 == 0) {
				
			}else{
				ans = "No";
			}
		}
		out.println(ans);
		}
	}
	
	static class InputReader {
		public BufferedReader reader;
		public StringTokenizer tokenizer;

		public InputReader(InputStream stream) {
			reader = new BufferedReader(new InputStreamReader(stream), 32768);
			tokenizer = null;
		}

		public String next() {
			while (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		}

		public int nextInt() {
			return Integer.parseInt(next());
		}

	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStream; InputStream java.io import java.io.InputStreamReader; InputStreamReader java.io import java.io.OutputStream; OutputStream java.io import java.io.PrintWriter; PrintWriter java.io import java.util.StringTokenizer; StringTokenizer java.util public class Main {
	public static void main(String[] args) {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		InputReader in = new InputReader(inputStream);
		PrintWriter out = new PrintWriter(outputStream);
		Task solver = new Task();
		solver.solve(1, in, out);
		out.close();
	}

	static class Task {
		public void solve(int testNumber, InputReader in, PrintWriter out) {
		int N = in.nextInt();
		int[] t = new int[N + 1];
		int[] x = new int[N + 1];
		int[] y = new int[N + 1];
		t[0] = 0;
		x[0] = 0;
		y[0] = 0;
		String ans = "Yes";
		
		for(int i = 0; i < N; i++) {
			t[i] = in.nextInt();
			x[i] = in.nextInt();
			y[i] = in.nextInt();
		}
		
		for(int i = 1; i <= N; i++) {
			int dif_t = Math.abs(t[i] - t[i - 1]);
			int dif_x = Math.abs(x[i] - x[i - 1]);
			int dif_y = Math.abs(y[i] - y[i - 1]);
			
			if(dif_t >= dif_x + dif_y && (dif_t - dif_x + dif_y) % 2 == 0) {
				
			}else{
				ans = "No";
			}
		}
		out.println(ans);
		}
	}
	
	static class InputReader {
		public BufferedReader reader;
		public StringTokenizer tokenizer;

		public InputReader(InputStream stream) {
			reader = new BufferedReader(new InputStreamReader(stream), 32768);
			tokenizer = null;
		}

		public String next() {
			while (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		}

		public int nextInt() {
			return Integer.parseInt(next());
		}

	}
} Main public static void main(String[] args) {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		InputReader in = new InputReader(inputStream);
		PrintWriter out = new PrintWriter(outputStream);
		Task solver = new Task();
		solver.solve(1, in, out);
		out.close();
	} main {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		InputReader in = new InputReader(inputStream);
		PrintWriter out = new PrintWriter(outputStream);
		Task solver = new Task();
		solver.solve(1, in, out);
		out.close();
	} InputStream inputStream = System.in; inputStream System.in System System.in OutputStream outputStream = System.out; outputStream System.out System System.out InputReader in = new InputReader(inputStream); in new InputReader(inputStream) PrintWriter out = new PrintWriter(outputStream); out new PrintWriter(outputStream) Task solver = new Task(); solver new Task() solver.solve(1, in, out) solver.solve solver 1 in out out.close() out.close out String[] args args static class Task {
		public void solve(int testNumber, InputReader in, PrintWriter out) {
		int N = in.nextInt();
		int[] t = new int[N + 1];
		int[] x = new int[N + 1];
		int[] y = new int[N + 1];
		t[0] = 0;
		x[0] = 0;
		y[0] = 0;
		String ans = "Yes";
		
		for(int i = 0; i < N; i++) {
			t[i] = in.nextInt();
			x[i] = in.nextInt();
			y[i] = in.nextInt();
		}
		
		for(int i = 1; i <= N; i++) {
			int dif_t = Math.abs(t[i] - t[i - 1]);
			int dif_x = Math.abs(x[i] - x[i - 1]);
			int dif_y = Math.abs(y[i] - y[i - 1]);
			
			if(dif_t >= dif_x + dif_y && (dif_t - dif_x + dif_y) % 2 == 0) {
				
			}else{
				ans = "No";
			}
		}
		out.println(ans);
		}
	} Task public void solve(int testNumber, InputReader in, PrintWriter out) {
		int N = in.nextInt();
		int[] t = new int[N + 1];
		int[] x = new int[N + 1];
		int[] y = new int[N + 1];
		t[0] = 0;
		x[0] = 0;
		y[0] = 0;
		String ans = "Yes";
		
		for(int i = 0; i < N; i++) {
			t[i] = in.nextInt();
			x[i] = in.nextInt();
			y[i] = in.nextInt();
		}
		
		for(int i = 1; i <= N; i++) {
			int dif_t = Math.abs(t[i] - t[i - 1]);
			int dif_x = Math.abs(x[i] - x[i - 1]);
			int dif_y = Math.abs(y[i] - y[i - 1]);
			
			if(dif_t >= dif_x + dif_y && (dif_t - dif_x + dif_y) % 2 == 0) {
				
			}else{
				ans = "No";
			}
		}
		out.println(ans);
		} solve {
		int N = in.nextInt();
		int[] t = new int[N + 1];
		int[] x = new int[N + 1];
		int[] y = new int[N + 1];
		t[0] = 0;
		x[0] = 0;
		y[0] = 0;
		String ans = "Yes";
		
		for(int i = 0; i < N; i++) {
			t[i] = in.nextInt();
			x[i] = in.nextInt();
			y[i] = in.nextInt();
		}
		
		for(int i = 1; i <= N; i++) {
			int dif_t = Math.abs(t[i] - t[i - 1]);
			int dif_x = Math.abs(x[i] - x[i - 1]);
			int dif_y = Math.abs(y[i] - y[i - 1]);
			
			if(dif_t >= dif_x + dif_y && (dif_t - dif_x + dif_y) % 2 == 0) {
				
			}else{
				ans = "No";
			}
		}
		out.println(ans);
		} int N = in.nextInt(); N in.nextInt() in.nextInt in int[] t = new int[N + 1]; t new int[N + 1] N + 1 N 1 int[] x = new int[N + 1]; x new int[N + 1] N + 1 N 1 int[] y = new int[N + 1]; y new int[N + 1] N + 1 N 1 t[0] = 0 t[0] t 0 0 x[0] = 0 x[0] x 0 0 y[0] = 0 y[0] y 0 0 String ans = "Yes"; ans "Yes" for(int i = 0; i < N; i++) {
			t[i] = in.nextInt();
			x[i] = in.nextInt();
			y[i] = in.nextInt();
		} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
			t[i] = in.nextInt();
			x[i] = in.nextInt();
			y[i] = in.nextInt();
		} {
			t[i] = in.nextInt();
			x[i] = in.nextInt();
			y[i] = in.nextInt();
		} t[i] = in.nextInt() t[i] t i in.nextInt() in.nextInt in x[i] = in.nextInt() x[i] x i in.nextInt() in.nextInt in y[i] = in.nextInt() y[i] y i in.nextInt() in.nextInt in for(int i = 1; i <= N; i++) {
			int dif_t = Math.abs(t[i] - t[i - 1]);
			int dif_x = Math.abs(x[i] - x[i - 1]);
			int dif_y = Math.abs(y[i] - y[i - 1]);
			
			if(dif_t >= dif_x + dif_y && (dif_t - dif_x + dif_y) % 2 == 0) {
				
			}else{
				ans = "No";
			}
		} int i = 1; int i = 1; i 1 i <= N i N i++ i++ i {
			int dif_t = Math.abs(t[i] - t[i - 1]);
			int dif_x = Math.abs(x[i] - x[i - 1]);
			int dif_y = Math.abs(y[i] - y[i - 1]);
			
			if(dif_t >= dif_x + dif_y && (dif_t - dif_x + dif_y) % 2 == 0) {
				
			}else{
				ans = "No";
			}
		} {
			int dif_t = Math.abs(t[i] - t[i - 1]);
			int dif_x = Math.abs(x[i] - x[i - 1]);
			int dif_y = Math.abs(y[i] - y[i - 1]);
			
			if(dif_t >= dif_x + dif_y && (dif_t - dif_x + dif_y) % 2 == 0) {
				
			}else{
				ans = "No";
			}
		} int dif_t = Math.abs(t[i] - t[i - 1]); dif_t Math.abs(t[i] - t[i - 1]) Math.abs Math t[i] - t[i - 1] t[i] t i t[i - 1] t i - 1 i 1 int dif_x = Math.abs(x[i] - x[i - 1]); dif_x Math.abs(x[i] - x[i - 1]) Math.abs Math x[i] - x[i - 1] x[i] x i x[i - 1] x i - 1 i 1 int dif_y = Math.abs(y[i] - y[i - 1]); dif_y Math.abs(y[i] - y[i - 1]) Math.abs Math y[i] - y[i - 1] y[i] y i y[i - 1] y i - 1 i 1 if(dif_t >= dif_x + dif_y && (dif_t - dif_x + dif_y) % 2 == 0) {
				
			}else{
				ans = "No";
			} dif_t >= dif_x + dif_y && (dif_t - dif_x + dif_y) % 2 == 0 dif_t >= dif_x + dif_y dif_t dif_x + dif_y dif_x dif_y (dif_t - dif_x + dif_y) % 2 == 0 (dif_t - dif_x + dif_y) % 2 (dif_t - dif_x + dif_y) dif_t - dif_x dif_t dif_x dif_y 2 0 {
				
			} {
				ans = "No";
			} ans = "No" ans "No" out.println(ans) out.println out ans int testNumber testNumber InputReader in in PrintWriter out out static class InputReader {
		public BufferedReader reader;
		public StringTokenizer tokenizer;

		public InputReader(InputStream stream) {
			reader = new BufferedReader(new InputStreamReader(stream), 32768);
			tokenizer = null;
		}

		public String next() {
			while (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		}

		public int nextInt() {
			return Integer.parseInt(next());
		}

	} InputReader public BufferedReader reader; reader public StringTokenizer tokenizer; tokenizer public InputReader(InputStream stream) {
			reader = new BufferedReader(new InputStreamReader(stream), 32768);
			tokenizer = null;
		} InputReader {
			reader = new BufferedReader(new InputStreamReader(stream), 32768);
			tokenizer = null;
		} reader = new BufferedReader(new InputStreamReader(stream), 32768) reader new BufferedReader(new InputStreamReader(stream), 32768) tokenizer = null tokenizer null InputStream stream stream public String next() {
			while (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		} next {
			while (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		} while (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			} tokenizer == null || !tokenizer.hasMoreTokens() tokenizer == null tokenizer null !tokenizer.hasMoreTokens() tokenizer.hasMoreTokens() tokenizer.hasMoreTokens tokenizer {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			} try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				} catch (IOException e) {
					throw new RuntimeException(e);
				} IOException e {
					throw new RuntimeException(e);
				} throw new RuntimeException(e); new RuntimeException(e) {
					tokenizer = new StringTokenizer(reader.readLine());
				} tokenizer = new StringTokenizer(reader.readLine()) tokenizer new StringTokenizer(reader.readLine()) return tokenizer.nextToken(); tokenizer.nextToken() tokenizer.nextToken tokenizer public int nextInt() {
			return Integer.parseInt(next());
		} nextInt {
			return Integer.parseInt(next());
		} return Integer.parseInt(next()); Integer.parseInt(next()) Integer.parseInt Integer next() next public class Main {
	public static void main(String[] args) {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		InputReader in = new InputReader(inputStream);
		PrintWriter out = new PrintWriter(outputStream);
		Task solver = new Task();
		solver.solve(1, in, out);
		out.close();
	}

	static class Task {
		public void solve(int testNumber, InputReader in, PrintWriter out) {
		int N = in.nextInt();
		int[] t = new int[N + 1];
		int[] x = new int[N + 1];
		int[] y = new int[N + 1];
		t[0] = 0;
		x[0] = 0;
		y[0] = 0;
		String ans = "Yes";
		
		for(int i = 0; i < N; i++) {
			t[i] = in.nextInt();
			x[i] = in.nextInt();
			y[i] = in.nextInt();
		}
		
		for(int i = 1; i <= N; i++) {
			int dif_t = Math.abs(t[i] - t[i - 1]);
			int dif_x = Math.abs(x[i] - x[i - 1]);
			int dif_y = Math.abs(y[i] - y[i - 1]);
			
			if(dif_t >= dif_x + dif_y && (dif_t - dif_x + dif_y) % 2 == 0) {
				
			}else{
				ans = "No";
			}
		}
		out.println(ans);
		}
	}
	
	static class InputReader {
		public BufferedReader reader;
		public StringTokenizer tokenizer;

		public InputReader(InputStream stream) {
			reader = new BufferedReader(new InputStreamReader(stream), 32768);
			tokenizer = null;
		}

		public String next() {
			while (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		}

		public int nextInt() {
			return Integer.parseInt(next());
		}

	}
} public class Main {
	public static void main(String[] args) {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		InputReader in = new InputReader(inputStream);
		PrintWriter out = new PrintWriter(outputStream);
		Task solver = new Task();
		solver.solve(1, in, out);
		out.close();
	}

	static class Task {
		public void solve(int testNumber, InputReader in, PrintWriter out) {
		int N = in.nextInt();
		int[] t = new int[N + 1];
		int[] x = new int[N + 1];
		int[] y = new int[N + 1];
		t[0] = 0;
		x[0] = 0;
		y[0] = 0;
		String ans = "Yes";
		
		for(int i = 0; i < N; i++) {
			t[i] = in.nextInt();
			x[i] = in.nextInt();
			y[i] = in.nextInt();
		}
		
		for(int i = 1; i <= N; i++) {
			int dif_t = Math.abs(t[i] - t[i - 1]);
			int dif_x = Math.abs(x[i] - x[i - 1]);
			int dif_y = Math.abs(y[i] - y[i - 1]);
			
			if(dif_t >= dif_x + dif_y && (dif_t - dif_x + dif_y) % 2 == 0) {
				
			}else{
				ans = "No";
			}
		}
		out.println(ans);
		}
	}
	
	static class InputReader {
		public BufferedReader reader;
		public StringTokenizer tokenizer;

		public InputReader(InputStream stream) {
			reader = new BufferedReader(new InputStreamReader(stream), 32768);
			tokenizer = null;
		}

		public String next() {
			while (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		}

		public int nextInt() {
			return Integer.parseInt(next());
		}

	}
} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.StringTokenizer;

/**
 * Built using CHelper plug-in Actual solution is at the top
 */

public class Main {
	public static void main(String[] args) {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		InputReader in = new InputReader(inputStream);
		PrintWriter out = new PrintWriter(outputStream);
		Task solver = new Task();
		solver.solve(1, in, out);
		out.close();
	}

	static class Task {
		public void solve(int testNumber, InputReader in, PrintWriter out) {
		int N = in.nextInt();
		int[] t = new int[N + 1];
		int[] x = new int[N + 1];
		int[] y = new int[N + 1];
		t[0] = 0;
		x[0] = 0;
		y[0] = 0;
		String ans = "Yes";
		
		for(int i = 0; i < N; i++) {
			t[i] = in.nextInt();
			x[i] = in.nextInt();
			y[i] = in.nextInt();
		}
		
		for(int i = 1; i <= N; i++) {
			int dif_t = Math.abs(t[i] - t[i - 1]);
			int dif_x = Math.abs(x[i] - x[i - 1]);
			int dif_y = Math.abs(y[i] - y[i - 1]);
			
			if(dif_t >= dif_x + dif_y && (dif_t - dif_x + dif_y) % 2 == 0) {
				
			}else{
				ans = "No";
			}
		}
		out.println(ans);
		}
	}
	
	static class InputReader {
		public BufferedReader reader;
		public StringTokenizer tokenizer;

		public InputReader(InputStream stream) {
			reader = new BufferedReader(new InputStreamReader(stream), 32768);
			tokenizer = null;
		}

		public String next() {
			while (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		}

		public int nextInt() {
			return Integer.parseInt(next());
		}

	}
}
