import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Scanner;

public class Main{
	public static void main(String[] args){
      InputStream inputStream = System.in;
      OutputStream outputStream = System.out;
      Scanner sc = new Scanner(inputStream);
      PrintWriter out = new PrintWriter(outputStream);
      int N = Integer.parseInt(sc.next());
      int preT = 0;
      int preX = 0;
      int preY = 0;
      
      boolean judge = true;
      for(int i = 0; i < N; i++){
      	int postT = Integer.parseInt(sc.next());
        int postX = Integer.parseInt(sc.next());
        int postY = Integer.parseInt(sc.next());
        
        int dt = postT - preT;
        int dist = Math.abs(postX - preX) + Math.abs(postY - preY);
        if(dt < dist || (dt - dist) % 2 != 0){
        	judge = false;
          	break;
        }
        preX = postX;
        preY = postY;
        preT = postT;
      }
      
      if(judge){
      	 out.println("Yes");
      }else {
     	 out.println("No");
      }
      out.close();
    }
}
/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz