import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        int n = sc.nextInt();
        int[] time = new int[100100];
        int[] x    = new int[100100];
        int[] y    = new int[100100];
        for(int i = 0; i < n; i++) {
            time[i + 1] = sc.nextInt();
            x[i + 1]    = sc.nextInt();
            y[i + 1]    = sc.nextInt();
        }
        boolean can = true;
        for( int i = 0; i < n; i++) {
            int dt = time[i+1] - time[i];
            int dist = Math.abs(x[i+1] -x[i]) + Math.abs(y[i+1] -y[i]);
            if(dt < dist) {
                can = false;
                break;
            }
            if(dist % 2 != dt %2) {
                can = false;
                break;
            }
        }
        String ans = "No";
        if(can) ans = "Yes";
        System.out.println(ans);
    }
} 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[] time = new int[100100];
        int[] x    = new int[100100];
        int[] y    = new int[100100];
        for(int i = 0; i < n; i++) {
            time[i + 1] = sc.nextInt();
            x[i + 1]    = sc.nextInt();
            y[i + 1]    = sc.nextInt();
        }
        boolean can = true;
        for( int i = 0; i < n; i++) {
            int dt = time[i+1] - time[i];
            int dist = Math.abs(x[i+1] -x[i]) + Math.abs(y[i+1] -y[i]);
            if(dt < dist) {
                can = false;
                break;
            }
            if(dist % 2 != dt %2) {
                can = false;
                break;
            }
        }
        String ans = "No";
        if(can) ans = "Yes";
        System.out.println(ans);
    }
} Main public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        int n = sc.nextInt();
        int[] time = new int[100100];
        int[] x    = new int[100100];
        int[] y    = new int[100100];
        for(int i = 0; i < n; i++) {
            time[i + 1] = sc.nextInt();
            x[i + 1]    = sc.nextInt();
            y[i + 1]    = sc.nextInt();
        }
        boolean can = true;
        for( int i = 0; i < n; i++) {
            int dt = time[i+1] - time[i];
            int dist = Math.abs(x[i+1] -x[i]) + Math.abs(y[i+1] -y[i]);
            if(dt < dist) {
                can = false;
                break;
            }
            if(dist % 2 != dt %2) {
                can = false;
                break;
            }
        }
        String ans = "No";
        if(can) ans = "Yes";
        System.out.println(ans);
    } main {
        Scanner sc= new Scanner(System.in);
        int n = sc.nextInt();
        int[] time = new int[100100];
        int[] x    = new int[100100];
        int[] y    = new int[100100];
        for(int i = 0; i < n; i++) {
            time[i + 1] = sc.nextInt();
            x[i + 1]    = sc.nextInt();
            y[i + 1]    = sc.nextInt();
        }
        boolean can = true;
        for( int i = 0; i < n; i++) {
            int dt = time[i+1] - time[i];
            int dist = Math.abs(x[i+1] -x[i]) + Math.abs(y[i+1] -y[i]);
            if(dt < dist) {
                can = false;
                break;
            }
            if(dist % 2 != dt %2) {
                can = false;
                break;
            }
        }
        String ans = "No";
        if(can) ans = "Yes";
        System.out.println(ans);
    } Scanner sc= new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc int[] time = new int[100100]; time new int[100100] 100100 int[] x    = new int[100100]; x new int[100100] 100100 int[] y    = new int[100100]; y new int[100100] 100100 for(int i = 0; i < n; i++) {
            time[i + 1] = sc.nextInt();
            x[i + 1]    = sc.nextInt();
            y[i + 1]    = sc.nextInt();
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            time[i + 1] = sc.nextInt();
            x[i + 1]    = sc.nextInt();
            y[i + 1]    = sc.nextInt();
        } {
            time[i + 1] = sc.nextInt();
            x[i + 1]    = sc.nextInt();
            y[i + 1]    = sc.nextInt();
        } time[i + 1] = sc.nextInt() time[i + 1] time i + 1 i 1 sc.nextInt() sc.nextInt sc x[i + 1]    = sc.nextInt() x[i + 1] x i + 1 i 1 sc.nextInt() sc.nextInt sc y[i + 1]    = sc.nextInt() y[i + 1] y i + 1 i 1 sc.nextInt() sc.nextInt sc boolean can = true; can true for( int i = 0; i < n; i++) {
            int dt = time[i+1] - time[i];
            int dist = Math.abs(x[i+1] -x[i]) + Math.abs(y[i+1] -y[i]);
            if(dt < dist) {
                can = false;
                break;
            }
            if(dist % 2 != dt %2) {
                can = false;
                break;
            }
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            int dt = time[i+1] - time[i];
            int dist = Math.abs(x[i+1] -x[i]) + Math.abs(y[i+1] -y[i]);
            if(dt < dist) {
                can = false;
                break;
            }
            if(dist % 2 != dt %2) {
                can = false;
                break;
            }
        } {
            int dt = time[i+1] - time[i];
            int dist = Math.abs(x[i+1] -x[i]) + Math.abs(y[i+1] -y[i]);
            if(dt < dist) {
                can = false;
                break;
            }
            if(dist % 2 != dt %2) {
                can = false;
                break;
            }
        } int dt = time[i+1] - time[i]; dt time[i+1] - time[i] time[i+1] time i+1 i 1 time[i] time i int dist = Math.abs(x[i+1] -x[i]) + Math.abs(y[i+1] -y[i]); dist Math.abs(x[i+1] -x[i]) + Math.abs(y[i+1] -y[i]) Math.abs(x[i+1] -x[i]) Math.abs Math x[i+1] -x[i] x[i+1] x i+1 i 1 x[i] x i Math.abs(y[i+1] -y[i]) Math.abs Math y[i+1] -y[i] y[i+1] y i+1 i 1 y[i] y i if(dt < dist) {
                can = false;
                break;
            } dt < dist dt dist {
                can = false;
                break;
            } can = false can false break; if(dist % 2 != dt %2) {
                can = false;
                break;
            } dist % 2 != dt %2 dist % 2 dist 2 dt %2 dt 2 {
                can = false;
                break;
            } can = false can false break; String ans = "No"; ans "No" if(can) ans = "Yes"; can ans = "Yes" ans "Yes" System.out.println(ans) System.out.println System.out System System.out ans String[] args args public class Main {
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        int n = sc.nextInt();
        int[] time = new int[100100];
        int[] x    = new int[100100];
        int[] y    = new int[100100];
        for(int i = 0; i < n; i++) {
            time[i + 1] = sc.nextInt();
            x[i + 1]    = sc.nextInt();
            y[i + 1]    = sc.nextInt();
        }
        boolean can = true;
        for( int i = 0; i < n; i++) {
            int dt = time[i+1] - time[i];
            int dist = Math.abs(x[i+1] -x[i]) + Math.abs(y[i+1] -y[i]);
            if(dt < dist) {
                can = false;
                break;
            }
            if(dist % 2 != dt %2) {
                can = false;
                break;
            }
        }
        String ans = "No";
        if(can) ans = "Yes";
        System.out.println(ans);
    }
} public class Main {
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        int n = sc.nextInt();
        int[] time = new int[100100];
        int[] x    = new int[100100];
        int[] y    = new int[100100];
        for(int i = 0; i < n; i++) {
            time[i + 1] = sc.nextInt();
            x[i + 1]    = sc.nextInt();
            y[i + 1]    = sc.nextInt();
        }
        boolean can = true;
        for( int i = 0; i < n; i++) {
            int dt = time[i+1] - time[i];
            int dist = Math.abs(x[i+1] -x[i]) + Math.abs(y[i+1] -y[i]);
            if(dt < dist) {
                can = false;
                break;
            }
            if(dist % 2 != dt %2) {
                can = false;
                break;
            }
        }
        String ans = "No";
        if(can) ans = "Yes";
        System.out.println(ans);
    }
} 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[] time = new int[100100];
        int[] x    = new int[100100];
        int[] y    = new int[100100];
        for(int i = 0; i < n; i++) {
            time[i + 1] = sc.nextInt();
            x[i + 1]    = sc.nextInt();
            y[i + 1]    = sc.nextInt();
        }
        boolean can = true;
        for( int i = 0; i < n; i++) {
            int dt = time[i+1] - time[i];
            int dist = Math.abs(x[i+1] -x[i]) + Math.abs(y[i+1] -y[i]);
            if(dt < dist) {
                can = false;
                break;
            }
            if(dist % 2 != dt %2) {
                can = false;
                break;
            }
        }
        String ans = "No";
        if(can) ans = "Yes";
        System.out.println(ans);
    }
}
