import java.util.*;
import java.io.InputStreamReader;
import java.io.BufferedReader;


public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int[] t = new int[n+1];
        int[] x = new int[n+1];
        int[] y = new int[n+1];
        
        for (int i = 0; i < n; i++) {
            String[] s = br.readLine().split(" ");
            t[i+1] = Integer.parseInt(s[0]);
            x[i+1] = Integer.parseInt(s[1]);
            y[i+1] = Integer.parseInt(s[2]);
        }
        
        int diff;
        boolean flag = true;
        for (int i = 1; i <= n; i++) {
            diff = Math.abs(x[i]-x[i-1]) + Math.abs(y[i]-y[i-1]);
            if (t[i]-t[i-1] >= diff && (t[i]-t[i-1])%2 == diff%2) continue;
            else {
                flag = false;
                break;
            }
        }
        
        System.out.println(flag?"Yes":"No");
    }
}


 import java.util.*; util.* java import java.io.InputStreamReader; InputStreamReader java.io import java.io.BufferedReader; BufferedReader java.io public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int[] t = new int[n+1];
        int[] x = new int[n+1];
        int[] y = new int[n+1];
        
        for (int i = 0; i < n; i++) {
            String[] s = br.readLine().split(" ");
            t[i+1] = Integer.parseInt(s[0]);
            x[i+1] = Integer.parseInt(s[1]);
            y[i+1] = Integer.parseInt(s[2]);
        }
        
        int diff;
        boolean flag = true;
        for (int i = 1; i <= n; i++) {
            diff = Math.abs(x[i]-x[i-1]) + Math.abs(y[i]-y[i-1]);
            if (t[i]-t[i-1] >= diff && (t[i]-t[i-1])%2 == diff%2) continue;
            else {
                flag = false;
                break;
            }
        }
        
        System.out.println(flag?"Yes":"No");
    }
} Main public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int[] t = new int[n+1];
        int[] x = new int[n+1];
        int[] y = new int[n+1];
        
        for (int i = 0; i < n; i++) {
            String[] s = br.readLine().split(" ");
            t[i+1] = Integer.parseInt(s[0]);
            x[i+1] = Integer.parseInt(s[1]);
            y[i+1] = Integer.parseInt(s[2]);
        }
        
        int diff;
        boolean flag = true;
        for (int i = 1; i <= n; i++) {
            diff = Math.abs(x[i]-x[i-1]) + Math.abs(y[i]-y[i-1]);
            if (t[i]-t[i-1] >= diff && (t[i]-t[i-1])%2 == diff%2) continue;
            else {
                flag = false;
                break;
            }
        }
        
        System.out.println(flag?"Yes":"No");
    } main {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int[] t = new int[n+1];
        int[] x = new int[n+1];
        int[] y = new int[n+1];
        
        for (int i = 0; i < n; i++) {
            String[] s = br.readLine().split(" ");
            t[i+1] = Integer.parseInt(s[0]);
            x[i+1] = Integer.parseInt(s[1]);
            y[i+1] = Integer.parseInt(s[2]);
        }
        
        int diff;
        boolean flag = true;
        for (int i = 1; i <= n; i++) {
            diff = Math.abs(x[i]-x[i-1]) + Math.abs(y[i]-y[i-1]);
            if (t[i]-t[i-1] >= diff && (t[i]-t[i-1])%2 == diff%2) continue;
            else {
                flag = false;
                break;
            }
        }
        
        System.out.println(flag?"Yes":"No");
    } BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) int n = Integer.parseInt(br.readLine()); n Integer.parseInt(br.readLine()) Integer.parseInt Integer br.readLine() br.readLine br 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 = 0; i < n; i++) {
            String[] s = br.readLine().split(" ");
            t[i+1] = Integer.parseInt(s[0]);
            x[i+1] = Integer.parseInt(s[1]);
            y[i+1] = Integer.parseInt(s[2]);
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            String[] s = br.readLine().split(" ");
            t[i+1] = Integer.parseInt(s[0]);
            x[i+1] = Integer.parseInt(s[1]);
            y[i+1] = Integer.parseInt(s[2]);
        } {
            String[] s = br.readLine().split(" ");
            t[i+1] = Integer.parseInt(s[0]);
            x[i+1] = Integer.parseInt(s[1]);
            y[i+1] = Integer.parseInt(s[2]);
        } String[] s = br.readLine().split(" "); s br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " t[i+1] = Integer.parseInt(s[0]) t[i+1] t i+1 i 1 Integer.parseInt(s[0]) Integer.parseInt Integer s[0] s 0 x[i+1] = Integer.parseInt(s[1]) x[i+1] x i+1 i 1 Integer.parseInt(s[1]) Integer.parseInt Integer s[1] s 1 y[i+1] = Integer.parseInt(s[2]) y[i+1] y i+1 i 1 Integer.parseInt(s[2]) Integer.parseInt Integer s[2] s 2 int diff; diff boolean flag = true; flag true for (int i = 1; i <= n; i++) {
            diff = Math.abs(x[i]-x[i-1]) + Math.abs(y[i]-y[i-1]);
            if (t[i]-t[i-1] >= diff && (t[i]-t[i-1])%2 == diff%2) continue;
            else {
                flag = false;
                break;
            }
        } int i = 1; int i = 1; i 1 i <= n i n i++ i++ i {
            diff = Math.abs(x[i]-x[i-1]) + Math.abs(y[i]-y[i-1]);
            if (t[i]-t[i-1] >= diff && (t[i]-t[i-1])%2 == diff%2) continue;
            else {
                flag = false;
                break;
            }
        } {
            diff = Math.abs(x[i]-x[i-1]) + Math.abs(y[i]-y[i-1]);
            if (t[i]-t[i-1] >= diff && (t[i]-t[i-1])%2 == diff%2) continue;
            else {
                flag = false;
                break;
            }
        } diff = Math.abs(x[i]-x[i-1]) + Math.abs(y[i]-y[i-1]) diff 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 (t[i]-t[i-1] >= diff && (t[i]-t[i-1])%2 == diff%2) continue;
            else {
                flag = false;
                break;
            } t[i]-t[i-1] >= diff && (t[i]-t[i-1])%2 == diff%2 t[i]-t[i-1] >= diff t[i]-t[i-1] t[i] t i t[i-1] t i-1 i 1 diff (t[i]-t[i-1])%2 == diff%2 (t[i]-t[i-1])%2 (t[i]-t[i-1]) t[i] t i t[i-1] t i-1 i 1 2 diff%2 diff 2 continue; {
                flag = false;
                break;
            } flag = false flag false break; System.out.println(flag?"Yes":"No") System.out.println System.out System System.out flag?"Yes":"No" flag "Yes" "No" String[] args args public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int[] t = new int[n+1];
        int[] x = new int[n+1];
        int[] y = new int[n+1];
        
        for (int i = 0; i < n; i++) {
            String[] s = br.readLine().split(" ");
            t[i+1] = Integer.parseInt(s[0]);
            x[i+1] = Integer.parseInt(s[1]);
            y[i+1] = Integer.parseInt(s[2]);
        }
        
        int diff;
        boolean flag = true;
        for (int i = 1; i <= n; i++) {
            diff = Math.abs(x[i]-x[i-1]) + Math.abs(y[i]-y[i-1]);
            if (t[i]-t[i-1] >= diff && (t[i]-t[i-1])%2 == diff%2) continue;
            else {
                flag = false;
                break;
            }
        }
        
        System.out.println(flag?"Yes":"No");
    }
} public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int[] t = new int[n+1];
        int[] x = new int[n+1];
        int[] y = new int[n+1];
        
        for (int i = 0; i < n; i++) {
            String[] s = br.readLine().split(" ");
            t[i+1] = Integer.parseInt(s[0]);
            x[i+1] = Integer.parseInt(s[1]);
            y[i+1] = Integer.parseInt(s[2]);
        }
        
        int diff;
        boolean flag = true;
        for (int i = 1; i <= n; i++) {
            diff = Math.abs(x[i]-x[i-1]) + Math.abs(y[i]-y[i-1]);
            if (t[i]-t[i-1] >= diff && (t[i]-t[i-1])%2 == diff%2) continue;
            else {
                flag = false;
                break;
            }
        }
        
        System.out.println(flag?"Yes":"No");
    }
} Main
import java.util.*;
import java.io.InputStreamReader;
import java.io.BufferedReader;


public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int[] t = new int[n+1];
        int[] x = new int[n+1];
        int[] y = new int[n+1];
        
        for (int i = 0; i < n; i++) {
            String[] s = br.readLine().split(" ");
            t[i+1] = Integer.parseInt(s[0]);
            x[i+1] = Integer.parseInt(s[1]);
            y[i+1] = Integer.parseInt(s[2]);
        }
        
        int diff;
        boolean flag = true;
        for (int i = 1; i <= n; i++) {
            diff = Math.abs(x[i]-x[i-1]) + Math.abs(y[i]-y[i-1]);
            if (t[i]-t[i-1] >= diff && (t[i]-t[i-1])%2 == diff%2) continue;
            else {
                flag = false;
                break;
            }
        }
        
        System.out.println(flag?"Yes":"No");
    }
}



