import java.io.BufferedReader;
import java.io.InputStreamReader;

import java.util.Arrays;
import java.util.Collections;
import java.util.ArrayList;
import java.util.List;
import java.util.HashSet;
import java.io.PrintWriter;
import java.io.OutputStream;

public class Main {
    // 標準入力
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    // 標準入力数値配列用 int
    static int[] inputval() throws Exception {
        String[] strarray = br.readLine().trim().split(" ");
        int[] intarray = new int[strarray.length];
        for (int i = 0; i < intarray.length; i++) {
            intarray[i] = Integer.parseInt(strarray[i]);
        }
        return intarray;
    }

    // 標準入力数値配列用 integer ソート用
    static Integer[] inputvalInteger() throws Exception {
        String[] strarray = br.readLine().trim().split(" ");
        Integer[] intarray = new Integer[strarray.length];
        for (int i = 0; i < intarray.length; i++) {
            intarray[i] = Integer.parseInt(strarray[i]);
        }
        return intarray;
    }

    public static void main(String[] args) throws Exception {
        // write your code here
        int n = Integer.parseInt(br.readLine().trim());
        int oldx = 0;
        int oldey = 0;
        int oldt = 0;
        for (int i=0;i<n;i++){
            int [] inputval = inputval();
            int t = inputval[0] - oldt;
            int x = inputval[1];
            int y = inputval[2];
            int dist = Math.abs(x-oldx)+Math.abs(y-oldey);
            if (dist > t || (t-dist) % 2 !=0){
                System.out.println("No");
                return;
            }
            oldx = x;
            oldey = y;
            oldt = inputval[0];

        }

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

}
 import java.io.BufferedReader; BufferedReader java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.Arrays; Arrays java.util import java.util.Collections; Collections java.util import java.util.ArrayList; ArrayList java.util import java.util.List; List java.util import java.util.HashSet; HashSet java.util import java.io.PrintWriter; PrintWriter java.io import java.io.OutputStream; OutputStream java.io public class Main {
    // 標準入力
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    // 標準入力数値配列用 int
    static int[] inputval() throws Exception {
        String[] strarray = br.readLine().trim().split(" ");
        int[] intarray = new int[strarray.length];
        for (int i = 0; i < intarray.length; i++) {
            intarray[i] = Integer.parseInt(strarray[i]);
        }
        return intarray;
    }

    // 標準入力数値配列用 integer ソート用
    static Integer[] inputvalInteger() throws Exception {
        String[] strarray = br.readLine().trim().split(" ");
        Integer[] intarray = new Integer[strarray.length];
        for (int i = 0; i < intarray.length; i++) {
            intarray[i] = Integer.parseInt(strarray[i]);
        }
        return intarray;
    }

    public static void main(String[] args) throws Exception {
        // write your code here
        int n = Integer.parseInt(br.readLine().trim());
        int oldx = 0;
        int oldey = 0;
        int oldt = 0;
        for (int i=0;i<n;i++){
            int [] inputval = inputval();
            int t = inputval[0] - oldt;
            int x = inputval[1];
            int y = inputval[2];
            int dist = Math.abs(x-oldx)+Math.abs(y-oldey);
            if (dist > t || (t-dist) % 2 !=0){
                System.out.println("No");
                return;
            }
            oldx = x;
            oldey = y;
            oldt = inputval[0];

        }

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

} Main // 標準入力
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) // 標準入力数値配列用 int
    static int[] inputval() throws Exception {
        String[] strarray = br.readLine().trim().split(" ");
        int[] intarray = new int[strarray.length];
        for (int i = 0; i < intarray.length; i++) {
            intarray[i] = Integer.parseInt(strarray[i]);
        }
        return intarray;
    } inputval {
        String[] strarray = br.readLine().trim().split(" ");
        int[] intarray = new int[strarray.length];
        for (int i = 0; i < intarray.length; i++) {
            intarray[i] = Integer.parseInt(strarray[i]);
        }
        return intarray;
    } String[] strarray = br.readLine().trim().split(" "); strarray br.readLine().trim().split(" ") br.readLine().trim().split br.readLine().trim() br.readLine().trim br.readLine() br.readLine br " " int[] intarray = new int[strarray.length]; intarray new int[strarray.length] strarray.length strarray strarray.length for (int i = 0; i < intarray.length; i++) {
            intarray[i] = Integer.parseInt(strarray[i]);
        } int i = 0; int i = 0; i 0 i < intarray.length i intarray.length intarray intarray.length i++ i++ i {
            intarray[i] = Integer.parseInt(strarray[i]);
        } {
            intarray[i] = Integer.parseInt(strarray[i]);
        } intarray[i] = Integer.parseInt(strarray[i]) intarray[i] intarray i Integer.parseInt(strarray[i]) Integer.parseInt Integer strarray[i] strarray i return intarray; intarray // 標準入力数値配列用 integer ソート用
    static Integer[] inputvalInteger() throws Exception {
        String[] strarray = br.readLine().trim().split(" ");
        Integer[] intarray = new Integer[strarray.length];
        for (int i = 0; i < intarray.length; i++) {
            intarray[i] = Integer.parseInt(strarray[i]);
        }
        return intarray;
    } inputvalInteger {
        String[] strarray = br.readLine().trim().split(" ");
        Integer[] intarray = new Integer[strarray.length];
        for (int i = 0; i < intarray.length; i++) {
            intarray[i] = Integer.parseInt(strarray[i]);
        }
        return intarray;
    } String[] strarray = br.readLine().trim().split(" "); strarray br.readLine().trim().split(" ") br.readLine().trim().split br.readLine().trim() br.readLine().trim br.readLine() br.readLine br " " Integer[] intarray = new Integer[strarray.length]; intarray new Integer[strarray.length] strarray.length strarray strarray.length for (int i = 0; i < intarray.length; i++) {
            intarray[i] = Integer.parseInt(strarray[i]);
        } int i = 0; int i = 0; i 0 i < intarray.length i intarray.length intarray intarray.length i++ i++ i {
            intarray[i] = Integer.parseInt(strarray[i]);
        } {
            intarray[i] = Integer.parseInt(strarray[i]);
        } intarray[i] = Integer.parseInt(strarray[i]) intarray[i] intarray i Integer.parseInt(strarray[i]) Integer.parseInt Integer strarray[i] strarray i return intarray; intarray public static void main(String[] args) throws Exception {
        // write your code here
        int n = Integer.parseInt(br.readLine().trim());
        int oldx = 0;
        int oldey = 0;
        int oldt = 0;
        for (int i=0;i<n;i++){
            int [] inputval = inputval();
            int t = inputval[0] - oldt;
            int x = inputval[1];
            int y = inputval[2];
            int dist = Math.abs(x-oldx)+Math.abs(y-oldey);
            if (dist > t || (t-dist) % 2 !=0){
                System.out.println("No");
                return;
            }
            oldx = x;
            oldey = y;
            oldt = inputval[0];

        }

        System.out.println("Yes");
    } main {
        // write your code here
        int n = Integer.parseInt(br.readLine().trim());
        int oldx = 0;
        int oldey = 0;
        int oldt = 0;
        for (int i=0;i<n;i++){
            int [] inputval = inputval();
            int t = inputval[0] - oldt;
            int x = inputval[1];
            int y = inputval[2];
            int dist = Math.abs(x-oldx)+Math.abs(y-oldey);
            if (dist > t || (t-dist) % 2 !=0){
                System.out.println("No");
                return;
            }
            oldx = x;
            oldey = y;
            oldt = inputval[0];

        }

        System.out.println("Yes");
    } int n = Integer.parseInt(br.readLine().trim()); n Integer.parseInt(br.readLine().trim()) Integer.parseInt Integer br.readLine().trim() br.readLine().trim br.readLine() br.readLine br int oldx = 0; oldx 0 int oldey = 0; oldey 0 int oldt = 0; oldt 0 for (int i=0;i<n;i++){
            int [] inputval = inputval();
            int t = inputval[0] - oldt;
            int x = inputval[1];
            int y = inputval[2];
            int dist = Math.abs(x-oldx)+Math.abs(y-oldey);
            if (dist > t || (t-dist) % 2 !=0){
                System.out.println("No");
                return;
            }
            oldx = x;
            oldey = y;
            oldt = inputval[0];

        } int i=0; int i=0; i 0 i<n i n i++ i++ i {
            int [] inputval = inputval();
            int t = inputval[0] - oldt;
            int x = inputval[1];
            int y = inputval[2];
            int dist = Math.abs(x-oldx)+Math.abs(y-oldey);
            if (dist > t || (t-dist) % 2 !=0){
                System.out.println("No");
                return;
            }
            oldx = x;
            oldey = y;
            oldt = inputval[0];

        } {
            int [] inputval = inputval();
            int t = inputval[0] - oldt;
            int x = inputval[1];
            int y = inputval[2];
            int dist = Math.abs(x-oldx)+Math.abs(y-oldey);
            if (dist > t || (t-dist) % 2 !=0){
                System.out.println("No");
                return;
            }
            oldx = x;
            oldey = y;
            oldt = inputval[0];

        } int [] inputval = inputval(); inputval inputval() inputval int t = inputval[0] - oldt; t inputval[0] - oldt inputval[0] inputval 0 oldt int x = inputval[1]; x inputval[1] inputval 1 int y = inputval[2]; y inputval[2] inputval 2 int dist = Math.abs(x-oldx)+Math.abs(y-oldey); dist Math.abs(x-oldx)+Math.abs(y-oldey) Math.abs(x-oldx) Math.abs Math x-oldx x oldx Math.abs(y-oldey) Math.abs Math y-oldey y oldey if (dist > t || (t-dist) % 2 !=0){
                System.out.println("No");
                return;
            } dist > t || (t-dist) % 2 !=0 dist > t dist t (t-dist) % 2 !=0 (t-dist) % 2 (t-dist) t dist 2 0 {
                System.out.println("No");
                return;
            } System.out.println("No") System.out.println System.out System System.out "No" return; oldx = x oldx x oldey = y oldey y oldt = inputval[0] oldt inputval[0] inputval 0 System.out.println("Yes") System.out.println System.out System System.out "Yes" String[] args args public class Main {
    // 標準入力
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    // 標準入力数値配列用 int
    static int[] inputval() throws Exception {
        String[] strarray = br.readLine().trim().split(" ");
        int[] intarray = new int[strarray.length];
        for (int i = 0; i < intarray.length; i++) {
            intarray[i] = Integer.parseInt(strarray[i]);
        }
        return intarray;
    }

    // 標準入力数値配列用 integer ソート用
    static Integer[] inputvalInteger() throws Exception {
        String[] strarray = br.readLine().trim().split(" ");
        Integer[] intarray = new Integer[strarray.length];
        for (int i = 0; i < intarray.length; i++) {
            intarray[i] = Integer.parseInt(strarray[i]);
        }
        return intarray;
    }

    public static void main(String[] args) throws Exception {
        // write your code here
        int n = Integer.parseInt(br.readLine().trim());
        int oldx = 0;
        int oldey = 0;
        int oldt = 0;
        for (int i=0;i<n;i++){
            int [] inputval = inputval();
            int t = inputval[0] - oldt;
            int x = inputval[1];
            int y = inputval[2];
            int dist = Math.abs(x-oldx)+Math.abs(y-oldey);
            if (dist > t || (t-dist) % 2 !=0){
                System.out.println("No");
                return;
            }
            oldx = x;
            oldey = y;
            oldt = inputval[0];

        }

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

} public class Main {
    // 標準入力
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    // 標準入力数値配列用 int
    static int[] inputval() throws Exception {
        String[] strarray = br.readLine().trim().split(" ");
        int[] intarray = new int[strarray.length];
        for (int i = 0; i < intarray.length; i++) {
            intarray[i] = Integer.parseInt(strarray[i]);
        }
        return intarray;
    }

    // 標準入力数値配列用 integer ソート用
    static Integer[] inputvalInteger() throws Exception {
        String[] strarray = br.readLine().trim().split(" ");
        Integer[] intarray = new Integer[strarray.length];
        for (int i = 0; i < intarray.length; i++) {
            intarray[i] = Integer.parseInt(strarray[i]);
        }
        return intarray;
    }

    public static void main(String[] args) throws Exception {
        // write your code here
        int n = Integer.parseInt(br.readLine().trim());
        int oldx = 0;
        int oldey = 0;
        int oldt = 0;
        for (int i=0;i<n;i++){
            int [] inputval = inputval();
            int t = inputval[0] - oldt;
            int x = inputval[1];
            int y = inputval[2];
            int dist = Math.abs(x-oldx)+Math.abs(y-oldey);
            if (dist > t || (t-dist) % 2 !=0){
                System.out.println("No");
                return;
            }
            oldx = x;
            oldey = y;
            oldt = inputval[0];

        }

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

} Main
import java.io.BufferedReader;
import java.io.InputStreamReader;

import java.util.Arrays;
import java.util.Collections;
import java.util.ArrayList;
import java.util.List;
import java.util.HashSet;
import java.io.PrintWriter;
import java.io.OutputStream;

public class Main {
    // 標準入力
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    // 標準入力数値配列用 int
    static int[] inputval() throws Exception {
        String[] strarray = br.readLine().trim().split(" ");
        int[] intarray = new int[strarray.length];
        for (int i = 0; i < intarray.length; i++) {
            intarray[i] = Integer.parseInt(strarray[i]);
        }
        return intarray;
    }

    // 標準入力数値配列用 integer ソート用
    static Integer[] inputvalInteger() throws Exception {
        String[] strarray = br.readLine().trim().split(" ");
        Integer[] intarray = new Integer[strarray.length];
        for (int i = 0; i < intarray.length; i++) {
            intarray[i] = Integer.parseInt(strarray[i]);
        }
        return intarray;
    }

    public static void main(String[] args) throws Exception {
        // write your code here
        int n = Integer.parseInt(br.readLine().trim());
        int oldx = 0;
        int oldey = 0;
        int oldt = 0;
        for (int i=0;i<n;i++){
            int [] inputval = inputval();
            int t = inputval[0] - oldt;
            int x = inputval[1];
            int y = inputval[2];
            int dist = Math.abs(x-oldx)+Math.abs(y-oldey);
            if (dist > t || (t-dist) % 2 !=0){
                System.out.println("No");
                return;
            }
            oldx = x;
            oldey = y;
            oldt = inputval[0];

        }

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

}

