import java.util.*;
import static java.lang.System.*;

class Main {
  public static final int MOD = 1000000007;
  public static final int INF = 1000000000;
  public static void main(String[] args) {
    Scanner sc = new Scanner(in);
    int N = sc.nextInt();
    Integer t[] = new Integer[N+1];
    Integer x[] = new Integer[N+1];
    Integer y[] = new Integer[N+1];
    t[0] = 0;
    x[0] = 0;
    y[0] = 0;
    int time;
    int move;
    String ans = "Yes";
    for(int i=1; i<N+1; i++){
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
      time = t[i] - t[i-1];
      move = Math.abs(x[i] - x[i-1]) + Math.abs(y[i] - y[i-1]);
      if(time < move || (time%2 != move%2) ){
        ans = "No";
        break;
      }
      
    }
    out.println(ans);
  }

  public static int gcd(int a, int b){
    if(b == 0) return a;
    return gcd(b, a%b);
  }
} import java.util.*; util.* java import static java.lang.System.*; import static java.lang.System.*; import static java.lang.System.*; class Main {
  public static final int MOD = 1000000007;
  public static final int INF = 1000000000;
  public static void main(String[] args) {
    Scanner sc = new Scanner(in);
    int N = sc.nextInt();
    Integer t[] = new Integer[N+1];
    Integer x[] = new Integer[N+1];
    Integer y[] = new Integer[N+1];
    t[0] = 0;
    x[0] = 0;
    y[0] = 0;
    int time;
    int move;
    String ans = "Yes";
    for(int i=1; i<N+1; i++){
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
      time = t[i] - t[i-1];
      move = Math.abs(x[i] - x[i-1]) + Math.abs(y[i] - y[i-1]);
      if(time < move || (time%2 != move%2) ){
        ans = "No";
        break;
      }
      
    }
    out.println(ans);
  }

  public static int gcd(int a, int b){
    if(b == 0) return a;
    return gcd(b, a%b);
  }
} Main public static final int MOD = 1000000007; MOD 1000000007 public static final int INF = 1000000000; INF 1000000000 public static void main(String[] args) {
    Scanner sc = new Scanner(in);
    int N = sc.nextInt();
    Integer t[] = new Integer[N+1];
    Integer x[] = new Integer[N+1];
    Integer y[] = new Integer[N+1];
    t[0] = 0;
    x[0] = 0;
    y[0] = 0;
    int time;
    int move;
    String ans = "Yes";
    for(int i=1; i<N+1; i++){
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
      time = t[i] - t[i-1];
      move = Math.abs(x[i] - x[i-1]) + Math.abs(y[i] - y[i-1]);
      if(time < move || (time%2 != move%2) ){
        ans = "No";
        break;
      }
      
    }
    out.println(ans);
  } main {
    Scanner sc = new Scanner(in);
    int N = sc.nextInt();
    Integer t[] = new Integer[N+1];
    Integer x[] = new Integer[N+1];
    Integer y[] = new Integer[N+1];
    t[0] = 0;
    x[0] = 0;
    y[0] = 0;
    int time;
    int move;
    String ans = "Yes";
    for(int i=1; i<N+1; i++){
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
      time = t[i] - t[i-1];
      move = Math.abs(x[i] - x[i-1]) + Math.abs(y[i] - y[i-1]);
      if(time < move || (time%2 != move%2) ){
        ans = "No";
        break;
      }
      
    }
    out.println(ans);
  } Scanner sc = new Scanner(in); sc new Scanner(in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc Integer t[] = new Integer[N+1]; t new Integer[N+1] N+1 N 1 Integer x[] = new Integer[N+1]; x new Integer[N+1] N+1 N 1 Integer y[] = new Integer[N+1]; y new Integer[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 int time; time int move; move String ans = "Yes"; ans "Yes" for(int i=1; i<N+1; i++){
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
      time = t[i] - t[i-1];
      move = Math.abs(x[i] - x[i-1]) + Math.abs(y[i] - y[i-1]);
      if(time < move || (time%2 != move%2) ){
        ans = "No";
        break;
      }
      
    } int i=1; int i=1; i 1 i<N+1 i N+1 N 1 i++ i++ i {
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
      time = t[i] - t[i-1];
      move = Math.abs(x[i] - x[i-1]) + Math.abs(y[i] - y[i-1]);
      if(time < move || (time%2 != move%2) ){
        ans = "No";
        break;
      }
      
    } {
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
      time = t[i] - t[i-1];
      move = Math.abs(x[i] - x[i-1]) + Math.abs(y[i] - y[i-1]);
      if(time < move || (time%2 != move%2) ){
        ans = "No";
        break;
      }
      
    } 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 time = t[i] - t[i-1] time t[i] - t[i-1] t[i] t i t[i-1] t i-1 i 1 move = Math.abs(x[i] - x[i-1]) + Math.abs(y[i] - y[i-1]) move 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(time < move || (time%2 != move%2) ){
        ans = "No";
        break;
      } time < move || (time%2 != move%2) time < move time move (time%2 != move%2) time%2 time 2 move%2 move 2 {
        ans = "No";
        break;
      } ans = "No" ans "No" break; out.println(ans) out.println out ans String[] args args public static int gcd(int a, int b){
    if(b == 0) return a;
    return gcd(b, a%b);
  } gcd {
    if(b == 0) return a;
    return gcd(b, a%b);
  } if(b == 0) return a; b == 0 b 0 return a; a return gcd(b, a%b); gcd(b, a%b) gcd b a%b a b int a a int b b
import java.util.*;
import static java.lang.System.*;

class Main {
  public static final int MOD = 1000000007;
  public static final int INF = 1000000000;
  public static void main(String[] args) {
    Scanner sc = new Scanner(in);
    int N = sc.nextInt();
    Integer t[] = new Integer[N+1];
    Integer x[] = new Integer[N+1];
    Integer y[] = new Integer[N+1];
    t[0] = 0;
    x[0] = 0;
    y[0] = 0;
    int time;
    int move;
    String ans = "Yes";
    for(int i=1; i<N+1; i++){
      t[i] = sc.nextInt();
      x[i] = sc.nextInt();
      y[i] = sc.nextInt();
      time = t[i] - t[i-1];
      move = Math.abs(x[i] - x[i-1]) + Math.abs(y[i] - y[i-1]);
      if(time < move || (time%2 != move%2) ){
        ans = "No";
        break;
      }
      
    }
    out.println(ans);
  }

  public static int gcd(int a, int b){
    if(b == 0) return a;
    return gcd(b, a%b);
  }
}