import java.util.*;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int[] t = new int[N + 1];
    int[] x = new int[N + 1];
    int[] y = new int[N + 1];
    for (int i = 1; i <= N; i++) {
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
    }
    boolean flag = true;
    for (int i = 1; i <= N; i++) {
      int dt = t[i] - t[i - 1];
      int dist = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
      if (dt < dist) {
        flag = false;
      }
      if (dt % 2 != dist % 2) {
        flag = false;
      }
    }
    if (flag) {
      System.out.println("Yes");
    } else {
      System.out.println("No");
    }
  }
} import java.util.*; util.* java public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int[] t = new int[N + 1];
    int[] x = new int[N + 1];
    int[] y = new int[N + 1];
    for (int i = 1; i <= N; i++) {
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
    }
    boolean flag = true;
    for (int i = 1; i <= N; i++) {
      int dt = t[i] - t[i - 1];
      int dist = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
      if (dt < dist) {
        flag = false;
      }
      if (dt % 2 != dist % 2) {
        flag = false;
      }
    }
    if (flag) {
      System.out.println("Yes");
    } else {
      System.out.println("No");
    }
  }
} Main public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int[] t = new int[N + 1];
    int[] x = new int[N + 1];
    int[] y = new int[N + 1];
    for (int i = 1; i <= N; i++) {
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
    }
    boolean flag = true;
    for (int i = 1; i <= N; i++) {
      int dt = t[i] - t[i - 1];
      int dist = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
      if (dt < dist) {
        flag = false;
      }
      if (dt % 2 != dist % 2) {
        flag = false;
      }
    }
    if (flag) {
      System.out.println("Yes");
    } else {
      System.out.println("No");
    }
  } main {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int[] t = new int[N + 1];
    int[] x = new int[N + 1];
    int[] y = new int[N + 1];
    for (int i = 1; i <= N; i++) {
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
    }
    boolean flag = true;
    for (int i = 1; i <= N; i++) {
      int dt = t[i] - t[i - 1];
      int dist = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
      if (dt < dist) {
        flag = false;
      }
      if (dt % 2 != dist % 2) {
        flag = false;
      }
    }
    if (flag) {
      System.out.println("Yes");
    } else {
      System.out.println("No");
    }
  } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc 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 for (int i = 1; i <= N; i++) {
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
    } int i = 1; int i = 1; i 1 i <= N i N i++ i++ i {
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
    } {
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
    } t[i] = sc.nextInt() t[i] t i sc.nextInt() sc.nextInt sc x[i] = sc.nextInt() x[i] x i sc.nextInt() sc.nextInt sc y[i] = sc.nextInt() y[i] y i sc.nextInt() sc.nextInt sc boolean flag = true; flag true for (int i = 1; i <= N; i++) {
      int dt = t[i] - t[i - 1];
      int dist = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
      if (dt < dist) {
        flag = false;
      }
      if (dt % 2 != dist % 2) {
        flag = false;
      }
    } int i = 1; int i = 1; i 1 i <= N i N i++ i++ i {
      int dt = t[i] - t[i - 1];
      int dist = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
      if (dt < dist) {
        flag = false;
      }
      if (dt % 2 != dist % 2) {
        flag = false;
      }
    } {
      int dt = t[i] - t[i - 1];
      int dist = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
      if (dt < dist) {
        flag = false;
      }
      if (dt % 2 != dist % 2) {
        flag = false;
      }
    } int dt = t[i] - t[i - 1]; dt t[i] - t[i - 1] t[i] t i t[i - 1] t i - 1 i 1 int dist = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]); dist Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]) 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 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 (dt < dist) {
        flag = false;
      } dt < dist dt dist {
        flag = false;
      } flag = false flag false if (dt % 2 != dist % 2) {
        flag = false;
      } dt % 2 != dist % 2 dt % 2 dt 2 dist % 2 dist 2 {
        flag = false;
      } flag = false flag false if (flag) {
      System.out.println("Yes");
    } else {
      System.out.println("No");
    } flag {
      System.out.println("Yes");
    } System.out.println("Yes") System.out.println System.out System System.out "Yes" {
      System.out.println("No");
    } System.out.println("No") System.out.println System.out System System.out "No" String[] args args public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int[] t = new int[N + 1];
    int[] x = new int[N + 1];
    int[] y = new int[N + 1];
    for (int i = 1; i <= N; i++) {
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
    }
    boolean flag = true;
    for (int i = 1; i <= N; i++) {
      int dt = t[i] - t[i - 1];
      int dist = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
      if (dt < dist) {
        flag = false;
      }
      if (dt % 2 != dist % 2) {
        flag = false;
      }
    }
    if (flag) {
      System.out.println("Yes");
    } else {
      System.out.println("No");
    }
  }
} public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int[] t = new int[N + 1];
    int[] x = new int[N + 1];
    int[] y = new int[N + 1];
    for (int i = 1; i <= N; i++) {
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
    }
    boolean flag = true;
    for (int i = 1; i <= N; i++) {
      int dt = t[i] - t[i - 1];
      int dist = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
      if (dt < dist) {
        flag = false;
      }
      if (dt % 2 != dist % 2) {
        flag = false;
      }
    }
    if (flag) {
      System.out.println("Yes");
    } else {
      System.out.println("No");
    }
  }
} Main
import java.util.*;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int[] t = new int[N + 1];
    int[] x = new int[N + 1];
    int[] y = new int[N + 1];
    for (int i = 1; i <= N; i++) {
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
    }
    boolean flag = true;
    for (int i = 1; i <= N; i++) {
      int dt = t[i] - t[i - 1];
      int dist = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
      if (dt < dist) {
        flag = false;
      }
      if (dt % 2 != dist % 2) {
        flag = false;
      }
    }
    if (flag) {
      System.out.println("Yes");
    } else {
      System.out.println("No");
    }
  }
}