import java.util.Scanner;

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();
        }
        sc.close();

        for (int i = 1; i <= N; i++) {
            int load = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
            int time = t[i] - t[i - 1];
            if (time < load || load % 2 != time % 2) {
                System.out.println("No");
                return;
            }
        }

        System.out.println("Yes");
    }
} import java.util.Scanner; Scanner 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();
        }
        sc.close();

        for (int i = 1; i <= N; i++) {
            int load = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
            int time = t[i] - t[i - 1];
            if (time < load || load % 2 != time % 2) {
                System.out.println("No");
                return;
            }
        }

        System.out.println("Yes");
    }
} 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();
        }
        sc.close();

        for (int i = 1; i <= N; i++) {
            int load = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
            int time = t[i] - t[i - 1];
            if (time < load || load % 2 != time % 2) {
                System.out.println("No");
                return;
            }
        }

        System.out.println("Yes");
    } 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();
        }
        sc.close();

        for (int i = 1; i <= N; i++) {
            int load = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
            int time = t[i] - t[i - 1];
            if (time < load || load % 2 != time % 2) {
                System.out.println("No");
                return;
            }
        }

        System.out.println("Yes");
    } 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 sc.close() sc.close sc for (int i = 1; i <= N; i++) {
            int load = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
            int time = t[i] - t[i - 1];
            if (time < load || load % 2 != time % 2) {
                System.out.println("No");
                return;
            }
        } int i = 1; int i = 1; i 1 i <= N i N i++ i++ i {
            int load = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
            int time = t[i] - t[i - 1];
            if (time < load || load % 2 != time % 2) {
                System.out.println("No");
                return;
            }
        } {
            int load = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
            int time = t[i] - t[i - 1];
            if (time < load || load % 2 != time % 2) {
                System.out.println("No");
                return;
            }
        } int load = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]); load 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 int time = t[i] - t[i - 1]; time t[i] - t[i - 1] t[i] t i t[i - 1] t i - 1 i 1 if (time < load || load % 2 != time % 2) {
                System.out.println("No");
                return;
            } time < load || load % 2 != time % 2 time < load time load load % 2 != time % 2 load % 2 load 2 time % 2 time 2 {
                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 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();
        }
        sc.close();

        for (int i = 1; i <= N; i++) {
            int load = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
            int time = t[i] - t[i - 1];
            if (time < load || load % 2 != time % 2) {
                System.out.println("No");
                return;
            }
        }

        System.out.println("Yes");
    }
} 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();
        }
        sc.close();

        for (int i = 1; i <= N; i++) {
            int load = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
            int time = t[i] - t[i - 1];
            if (time < load || load % 2 != time % 2) {
                System.out.println("No");
                return;
            }
        }

        System.out.println("Yes");
    }
} Main
import java.util.Scanner;

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();
        }
        sc.close();

        for (int i = 1; i <= N; i++) {
            int load = Math.abs(x[i] - x[i - 1]) + Math.abs(y[i] - y[i - 1]);
            int time = t[i] - t[i - 1];
            if (time < load || load % 2 != time % 2) {
                System.out.println("No");
                return;
            }
        }

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