import java.util.*;
import static java.lang.Math.abs;

public class Main {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        int N = scan.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;
        for(int i = 1; i <= N; i++){

            t[i] = scan.nextInt();;
            x[i] = scan.nextInt();
            y[i] = scan.nextInt();
        }

        int times = 0;
        int min_times_for_dst  = 0;
        int rest_times = 0;
        for(int i = 0; i < N; i++){

            times     = t[i+1] -t[i];
            min_times_for_dst = abs(x[i+1]-x[i]) + abs(y[i+1]-y[i]);
            rest_times = times - min_times_for_dst;

            if(times < min_times_for_dst){
                System.out.println("No");
                return;
            }

            if(rest_times% 2 != 0){
                System.out.println("No");
                return;
            }
        }

        System.out.println("Yes");
    }
} import java.util.*; util.* java import static java.lang.Math.abs; import static java.lang.Math.abs; import static java.lang.Math.abs; public class Main {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        int N = scan.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;
        for(int i = 1; i <= N; i++){

            t[i] = scan.nextInt();;
            x[i] = scan.nextInt();
            y[i] = scan.nextInt();
        }

        int times = 0;
        int min_times_for_dst  = 0;
        int rest_times = 0;
        for(int i = 0; i < N; i++){

            times     = t[i+1] -t[i];
            min_times_for_dst = abs(x[i+1]-x[i]) + abs(y[i+1]-y[i]);
            rest_times = times - min_times_for_dst;

            if(times < min_times_for_dst){
                System.out.println("No");
                return;
            }

            if(rest_times% 2 != 0){
                System.out.println("No");
                return;
            }
        }

        System.out.println("Yes");
    }
} Main public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        int N = scan.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;
        for(int i = 1; i <= N; i++){

            t[i] = scan.nextInt();;
            x[i] = scan.nextInt();
            y[i] = scan.nextInt();
        }

        int times = 0;
        int min_times_for_dst  = 0;
        int rest_times = 0;
        for(int i = 0; i < N; i++){

            times     = t[i+1] -t[i];
            min_times_for_dst = abs(x[i+1]-x[i]) + abs(y[i+1]-y[i]);
            rest_times = times - min_times_for_dst;

            if(times < min_times_for_dst){
                System.out.println("No");
                return;
            }

            if(rest_times% 2 != 0){
                System.out.println("No");
                return;
            }
        }

        System.out.println("Yes");
    } main {

        Scanner scan = new Scanner(System.in);
        int N = scan.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;
        for(int i = 1; i <= N; i++){

            t[i] = scan.nextInt();;
            x[i] = scan.nextInt();
            y[i] = scan.nextInt();
        }

        int times = 0;
        int min_times_for_dst  = 0;
        int rest_times = 0;
        for(int i = 0; i < N; i++){

            times     = t[i+1] -t[i];
            min_times_for_dst = abs(x[i+1]-x[i]) + abs(y[i+1]-y[i]);
            rest_times = times - min_times_for_dst;

            if(times < min_times_for_dst){
                System.out.println("No");
                return;
            }

            if(rest_times% 2 != 0){
                System.out.println("No");
                return;
            }
        }

        System.out.println("Yes");
    } Scanner scan = new Scanner(System.in); scan new Scanner(System.in) int N = scan.nextInt(); N scan.nextInt() scan.nextInt scan 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 for(int i = 1; i <= N; i++){

            t[i] = scan.nextInt();;
            x[i] = scan.nextInt();
            y[i] = scan.nextInt();
        } int i = 1; int i = 1; i 1 i <= N i N i++ i++ i {

            t[i] = scan.nextInt();;
            x[i] = scan.nextInt();
            y[i] = scan.nextInt();
        } {

            t[i] = scan.nextInt();;
            x[i] = scan.nextInt();
            y[i] = scan.nextInt();
        } t[i] = scan.nextInt() t[i] t i scan.nextInt() scan.nextInt scan x[i] = scan.nextInt() x[i] x i scan.nextInt() scan.nextInt scan y[i] = scan.nextInt() y[i] y i scan.nextInt() scan.nextInt scan int times = 0; times 0 int min_times_for_dst  = 0; min_times_for_dst 0 int rest_times = 0; rest_times 0 for(int i = 0; i < N; i++){

            times     = t[i+1] -t[i];
            min_times_for_dst = abs(x[i+1]-x[i]) + abs(y[i+1]-y[i]);
            rest_times = times - min_times_for_dst;

            if(times < min_times_for_dst){
                System.out.println("No");
                return;
            }

            if(rest_times% 2 != 0){
                System.out.println("No");
                return;
            }
        } int i = 0; int i = 0; i 0 i < N i N i++ i++ i {

            times     = t[i+1] -t[i];
            min_times_for_dst = abs(x[i+1]-x[i]) + abs(y[i+1]-y[i]);
            rest_times = times - min_times_for_dst;

            if(times < min_times_for_dst){
                System.out.println("No");
                return;
            }

            if(rest_times% 2 != 0){
                System.out.println("No");
                return;
            }
        } {

            times     = t[i+1] -t[i];
            min_times_for_dst = abs(x[i+1]-x[i]) + abs(y[i+1]-y[i]);
            rest_times = times - min_times_for_dst;

            if(times < min_times_for_dst){
                System.out.println("No");
                return;
            }

            if(rest_times% 2 != 0){
                System.out.println("No");
                return;
            }
        } times     = t[i+1] -t[i] times t[i+1] -t[i] t[i+1] t i+1 i 1 t[i] t i min_times_for_dst = abs(x[i+1]-x[i]) + abs(y[i+1]-y[i]) min_times_for_dst abs(x[i+1]-x[i]) + abs(y[i+1]-y[i]) abs(x[i+1]-x[i]) abs x[i+1]-x[i] x[i+1] x i+1 i 1 x[i] x i abs(y[i+1]-y[i]) abs y[i+1]-y[i] y[i+1] y i+1 i 1 y[i] y i rest_times = times - min_times_for_dst rest_times times - min_times_for_dst times min_times_for_dst if(times < min_times_for_dst){
                System.out.println("No");
                return;
            } times < min_times_for_dst times min_times_for_dst {
                System.out.println("No");
                return;
            } System.out.println("No") System.out.println System.out System System.out "No" return; if(rest_times% 2 != 0){
                System.out.println("No");
                return;
            } rest_times% 2 != 0 rest_times% 2 rest_times 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) {

        Scanner scan = new Scanner(System.in);
        int N = scan.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;
        for(int i = 1; i <= N; i++){

            t[i] = scan.nextInt();;
            x[i] = scan.nextInt();
            y[i] = scan.nextInt();
        }

        int times = 0;
        int min_times_for_dst  = 0;
        int rest_times = 0;
        for(int i = 0; i < N; i++){

            times     = t[i+1] -t[i];
            min_times_for_dst = abs(x[i+1]-x[i]) + abs(y[i+1]-y[i]);
            rest_times = times - min_times_for_dst;

            if(times < min_times_for_dst){
                System.out.println("No");
                return;
            }

            if(rest_times% 2 != 0){
                System.out.println("No");
                return;
            }
        }

        System.out.println("Yes");
    }
} public class Main {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        int N = scan.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;
        for(int i = 1; i <= N; i++){

            t[i] = scan.nextInt();;
            x[i] = scan.nextInt();
            y[i] = scan.nextInt();
        }

        int times = 0;
        int min_times_for_dst  = 0;
        int rest_times = 0;
        for(int i = 0; i < N; i++){

            times     = t[i+1] -t[i];
            min_times_for_dst = abs(x[i+1]-x[i]) + abs(y[i+1]-y[i]);
            rest_times = times - min_times_for_dst;

            if(times < min_times_for_dst){
                System.out.println("No");
                return;
            }

            if(rest_times% 2 != 0){
                System.out.println("No");
                return;
            }
        }

        System.out.println("Yes");
    }
} Main
import java.util.*;
import static java.lang.Math.abs;

public class Main {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        int N = scan.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;
        for(int i = 1; i <= N; i++){

            t[i] = scan.nextInt();;
            x[i] = scan.nextInt();
            y[i] = scan.nextInt();
        }

        int times = 0;
        int min_times_for_dst  = 0;
        int rest_times = 0;
        for(int i = 0; i < N; i++){

            times     = t[i+1] -t[i];
            min_times_for_dst = abs(x[i+1]-x[i]) + abs(y[i+1]-y[i]);
            rest_times = times - min_times_for_dst;

            if(times < min_times_for_dst){
                System.out.println("No");
                return;
            }

            if(rest_times% 2 != 0){
                System.out.println("No");
                return;
            }
        }

        System.out.println("Yes");
    }
}
