import java.io.*;

public class Main {
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    int numData = Integer.parseInt(br.readLine());
    
    int currentT = 0;
    int currentX = 0;
    int currentY = 0;
    int nextT = 0;
    int nextX = 0;
    int nextY = 0;
    int amountMove = 0;
    
    for(int i=0; i<numData; i++){
      String[] data = br.readLine().split(" ");
      nextT = Integer.parseInt(data[0]);
      nextX = Integer.parseInt(data[1]);
      nextY = Integer.parseInt(data[2]);
      
      amountMove = Math.abs(nextX - currentX) + Math.abs(nextY - currentY);
      if(amountMove > nextT-currentT || (nextT-currentT-amountMove)%2 != 0){
        System.out.println("No");
        return;
      }
    }
    System.out.println("Yes");
  }
} import java.io.*; io.* java public class Main {
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    int numData = Integer.parseInt(br.readLine());
    
    int currentT = 0;
    int currentX = 0;
    int currentY = 0;
    int nextT = 0;
    int nextX = 0;
    int nextY = 0;
    int amountMove = 0;
    
    for(int i=0; i<numData; i++){
      String[] data = br.readLine().split(" ");
      nextT = Integer.parseInt(data[0]);
      nextX = Integer.parseInt(data[1]);
      nextY = Integer.parseInt(data[2]);
      
      amountMove = Math.abs(nextX - currentX) + Math.abs(nextY - currentY);
      if(amountMove > nextT-currentT || (nextT-currentT-amountMove)%2 != 0){
        System.out.println("No");
        return;
      }
    }
    System.out.println("Yes");
  }
} Main public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    int numData = Integer.parseInt(br.readLine());
    
    int currentT = 0;
    int currentX = 0;
    int currentY = 0;
    int nextT = 0;
    int nextX = 0;
    int nextY = 0;
    int amountMove = 0;
    
    for(int i=0; i<numData; i++){
      String[] data = br.readLine().split(" ");
      nextT = Integer.parseInt(data[0]);
      nextX = Integer.parseInt(data[1]);
      nextY = Integer.parseInt(data[2]);
      
      amountMove = Math.abs(nextX - currentX) + Math.abs(nextY - currentY);
      if(amountMove > nextT-currentT || (nextT-currentT-amountMove)%2 != 0){
        System.out.println("No");
        return;
      }
    }
    System.out.println("Yes");
  } main {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    int numData = Integer.parseInt(br.readLine());
    
    int currentT = 0;
    int currentX = 0;
    int currentY = 0;
    int nextT = 0;
    int nextX = 0;
    int nextY = 0;
    int amountMove = 0;
    
    for(int i=0; i<numData; i++){
      String[] data = br.readLine().split(" ");
      nextT = Integer.parseInt(data[0]);
      nextX = Integer.parseInt(data[1]);
      nextY = Integer.parseInt(data[2]);
      
      amountMove = Math.abs(nextX - currentX) + Math.abs(nextY - currentY);
      if(amountMove > nextT-currentT || (nextT-currentT-amountMove)%2 != 0){
        System.out.println("No");
        return;
      }
    }
    System.out.println("Yes");
  } BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) int numData = Integer.parseInt(br.readLine()); numData Integer.parseInt(br.readLine()) Integer.parseInt Integer br.readLine() br.readLine br int currentT = 0; currentT 0 int currentX = 0; currentX 0 int currentY = 0; currentY 0 int nextT = 0; nextT 0 int nextX = 0; nextX 0 int nextY = 0; nextY 0 int amountMove = 0; amountMove 0 for(int i=0; i<numData; i++){
      String[] data = br.readLine().split(" ");
      nextT = Integer.parseInt(data[0]);
      nextX = Integer.parseInt(data[1]);
      nextY = Integer.parseInt(data[2]);
      
      amountMove = Math.abs(nextX - currentX) + Math.abs(nextY - currentY);
      if(amountMove > nextT-currentT || (nextT-currentT-amountMove)%2 != 0){
        System.out.println("No");
        return;
      }
    } int i=0; int i=0; i 0 i<numData i numData i++ i++ i {
      String[] data = br.readLine().split(" ");
      nextT = Integer.parseInt(data[0]);
      nextX = Integer.parseInt(data[1]);
      nextY = Integer.parseInt(data[2]);
      
      amountMove = Math.abs(nextX - currentX) + Math.abs(nextY - currentY);
      if(amountMove > nextT-currentT || (nextT-currentT-amountMove)%2 != 0){
        System.out.println("No");
        return;
      }
    } {
      String[] data = br.readLine().split(" ");
      nextT = Integer.parseInt(data[0]);
      nextX = Integer.parseInt(data[1]);
      nextY = Integer.parseInt(data[2]);
      
      amountMove = Math.abs(nextX - currentX) + Math.abs(nextY - currentY);
      if(amountMove > nextT-currentT || (nextT-currentT-amountMove)%2 != 0){
        System.out.println("No");
        return;
      }
    } String[] data = br.readLine().split(" "); data br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " nextT = Integer.parseInt(data[0]) nextT Integer.parseInt(data[0]) Integer.parseInt Integer data[0] data 0 nextX = Integer.parseInt(data[1]) nextX Integer.parseInt(data[1]) Integer.parseInt Integer data[1] data 1 nextY = Integer.parseInt(data[2]) nextY Integer.parseInt(data[2]) Integer.parseInt Integer data[2] data 2 amountMove = Math.abs(nextX - currentX) + Math.abs(nextY - currentY) amountMove Math.abs(nextX - currentX) + Math.abs(nextY - currentY) Math.abs(nextX - currentX) Math.abs Math nextX - currentX nextX currentX Math.abs(nextY - currentY) Math.abs Math nextY - currentY nextY currentY if(amountMove > nextT-currentT || (nextT-currentT-amountMove)%2 != 0){
        System.out.println("No");
        return;
      } amountMove > nextT-currentT || (nextT-currentT-amountMove)%2 != 0 amountMove > nextT-currentT amountMove nextT-currentT nextT currentT (nextT-currentT-amountMove)%2 != 0 (nextT-currentT-amountMove)%2 (nextT-currentT-amountMove) nextT-currentT-amountMove nextT currentT amountMove 2 0 {
        System.out.println("No");
        return;
      } System.out.println("No") System.out.println System.out System System.out "No" return; System.out.println("Yes") System.out.println System.out System System.out "Yes" String[] args args public class Main {
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    int numData = Integer.parseInt(br.readLine());
    
    int currentT = 0;
    int currentX = 0;
    int currentY = 0;
    int nextT = 0;
    int nextX = 0;
    int nextY = 0;
    int amountMove = 0;
    
    for(int i=0; i<numData; i++){
      String[] data = br.readLine().split(" ");
      nextT = Integer.parseInt(data[0]);
      nextX = Integer.parseInt(data[1]);
      nextY = Integer.parseInt(data[2]);
      
      amountMove = Math.abs(nextX - currentX) + Math.abs(nextY - currentY);
      if(amountMove > nextT-currentT || (nextT-currentT-amountMove)%2 != 0){
        System.out.println("No");
        return;
      }
    }
    System.out.println("Yes");
  }
} public class Main {
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    int numData = Integer.parseInt(br.readLine());
    
    int currentT = 0;
    int currentX = 0;
    int currentY = 0;
    int nextT = 0;
    int nextX = 0;
    int nextY = 0;
    int amountMove = 0;
    
    for(int i=0; i<numData; i++){
      String[] data = br.readLine().split(" ");
      nextT = Integer.parseInt(data[0]);
      nextX = Integer.parseInt(data[1]);
      nextY = Integer.parseInt(data[2]);
      
      amountMove = Math.abs(nextX - currentX) + Math.abs(nextY - currentY);
      if(amountMove > nextT-currentT || (nextT-currentT-amountMove)%2 != 0){
        System.out.println("No");
        return;
      }
    }
    System.out.println("Yes");
  }
} Main
import java.io.*;

public class Main {
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    int numData = Integer.parseInt(br.readLine());
    
    int currentT = 0;
    int currentX = 0;
    int currentY = 0;
    int nextT = 0;
    int nextX = 0;
    int nextY = 0;
    int amountMove = 0;
    
    for(int i=0; i<numData; i++){
      String[] data = br.readLine().split(" ");
      nextT = Integer.parseInt(data[0]);
      nextX = Integer.parseInt(data[1]);
      nextY = Integer.parseInt(data[2]);
      
      amountMove = Math.abs(nextX - currentX) + Math.abs(nextY - currentY);
      if(amountMove > nextT-currentT || (nextT-currentT-amountMove)%2 != 0){
        System.out.println("No");
        return;
      }
    }
    System.out.println("Yes");
  }
}