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();
        }
        int dist = 0;
        int flag = 1;
        int time = 0;
        for(int i = 1; i <= n; i++){
            time = t[i] - t[i-1];
            dist = Math.abs( Math.abs( (x[i] - x[i-1]) ) + Math.abs( (y[i] - y[i-1]) ) );
            if(time < dist){
                flag = 0;
                break;
            } else if((time-dist)%2 != 0){
                flag = 0;
                break;
            }
        }
        if(flag == 1){
            System.out.print("Yes");
        } else {
            System.out.print("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();
        }
        int dist = 0;
        int flag = 1;
        int time = 0;
        for(int i = 1; i <= n; i++){
            time = t[i] - t[i-1];
            dist = Math.abs( Math.abs( (x[i] - x[i-1]) ) + Math.abs( (y[i] - y[i-1]) ) );
            if(time < dist){
                flag = 0;
                break;
            } else if((time-dist)%2 != 0){
                flag = 0;
                break;
            }
        }
        if(flag == 1){
            System.out.print("Yes");
        } else {
            System.out.print("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();
        }
        int dist = 0;
        int flag = 1;
        int time = 0;
        for(int i = 1; i <= n; i++){
            time = t[i] - t[i-1];
            dist = Math.abs( Math.abs( (x[i] - x[i-1]) ) + Math.abs( (y[i] - y[i-1]) ) );
            if(time < dist){
                flag = 0;
                break;
            } else if((time-dist)%2 != 0){
                flag = 0;
                break;
            }
        }
        if(flag == 1){
            System.out.print("Yes");
        } else {
            System.out.print("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();
        }
        int dist = 0;
        int flag = 1;
        int time = 0;
        for(int i = 1; i <= n; i++){
            time = t[i] - t[i-1];
            dist = Math.abs( Math.abs( (x[i] - x[i-1]) ) + Math.abs( (y[i] - y[i-1]) ) );
            if(time < dist){
                flag = 0;
                break;
            } else if((time-dist)%2 != 0){
                flag = 0;
                break;
            }
        }
        if(flag == 1){
            System.out.print("Yes");
        } else {
            System.out.print("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 int dist = 0; dist 0 int flag = 1; flag 1 int time = 0; time 0 for(int i = 1; i <= n; i++){
            time = t[i] - t[i-1];
            dist = Math.abs( Math.abs( (x[i] - x[i-1]) ) + Math.abs( (y[i] - y[i-1]) ) );
            if(time < dist){
                flag = 0;
                break;
            } else if((time-dist)%2 != 0){
                flag = 0;
                break;
            }
        } int i = 1; int i = 1; i 1 i <= n i n i++ i++ i {
            time = t[i] - t[i-1];
            dist = Math.abs( Math.abs( (x[i] - x[i-1]) ) + Math.abs( (y[i] - y[i-1]) ) );
            if(time < dist){
                flag = 0;
                break;
            } else if((time-dist)%2 != 0){
                flag = 0;
                break;
            }
        } {
            time = t[i] - t[i-1];
            dist = Math.abs( Math.abs( (x[i] - x[i-1]) ) + Math.abs( (y[i] - y[i-1]) ) );
            if(time < dist){
                flag = 0;
                break;
            } else if((time-dist)%2 != 0){
                flag = 0;
                break;
            }
        } time = t[i] - t[i-1] time t[i] - t[i-1] t[i] t i t[i-1] t i-1 i 1 dist = Math.abs( Math.abs( (x[i] - x[i-1]) ) + Math.abs( (y[i] - y[i-1]) ) ) dist Math.abs( Math.abs( (x[i] - x[i-1]) ) + Math.abs( (y[i] - y[i-1]) ) ) Math.abs Math 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 < dist){
                flag = 0;
                break;
            } else if((time-dist)%2 != 0){
                flag = 0;
                break;
            } time < dist time dist {
                flag = 0;
                break;
            } flag = 0 flag 0 break; if((time-dist)%2 != 0){
                flag = 0;
                break;
            } (time-dist)%2 != 0 (time-dist)%2 (time-dist) time dist 2 0 {
                flag = 0;
                break;
            } flag = 0 flag 0 break; if(flag == 1){
            System.out.print("Yes");
        } else {
            System.out.print("No");
        } flag == 1 flag 1 {
            System.out.print("Yes");
        } System.out.print("Yes") System.out.print System.out System System.out "Yes" {
            System.out.print("No");
        } System.out.print("No") System.out.print 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();
        }
        int dist = 0;
        int flag = 1;
        int time = 0;
        for(int i = 1; i <= n; i++){
            time = t[i] - t[i-1];
            dist = Math.abs( Math.abs( (x[i] - x[i-1]) ) + Math.abs( (y[i] - y[i-1]) ) );
            if(time < dist){
                flag = 0;
                break;
            } else if((time-dist)%2 != 0){
                flag = 0;
                break;
            }
        }
        if(flag == 1){
            System.out.print("Yes");
        } else {
            System.out.print("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();
        }
        int dist = 0;
        int flag = 1;
        int time = 0;
        for(int i = 1; i <= n; i++){
            time = t[i] - t[i-1];
            dist = Math.abs( Math.abs( (x[i] - x[i-1]) ) + Math.abs( (y[i] - y[i-1]) ) );
            if(time < dist){
                flag = 0;
                break;
            } else if((time-dist)%2 != 0){
                flag = 0;
                break;
            }
        }
        if(flag == 1){
            System.out.print("Yes");
        } else {
            System.out.print("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();
        }
        int dist = 0;
        int flag = 1;
        int time = 0;
        for(int i = 1; i <= n; i++){
            time = t[i] - t[i-1];
            dist = Math.abs( Math.abs( (x[i] - x[i-1]) ) + Math.abs( (y[i] - y[i-1]) ) );
            if(time < dist){
                flag = 0;
                break;
            } else if((time-dist)%2 != 0){
                flag = 0;
                break;
            }
        }
        if(flag == 1){
            System.out.print("Yes");
        } else {
            System.out.print("No");
        }
    }
}