import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        List<Integer> t = new ArrayList<>();
        List<Integer> x = new ArrayList<>();
        List<Integer> y = new ArrayList<>();
        t.add(0);
        x.add(0);
        y.add(0);
        for(int i = 0;i < n;i++){
            t.add(sc.nextInt());
            x.add(sc.nextInt());
            y.add(sc.nextInt());
        }
        boolean can = true;
        for(int i = 1;i <= n;i++){
            int dt = t.get(i) - t.get(i-1);
            int dist = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i)-y.get(i-1));
            if(!(dist <= dt && ((dist % 2) == (dt % 2)))){
                can = false;
            }
        }
        if(can){
            System.out.println("Yes");
            return;
        }
        System.out.println("No");
    }
} import java.util.Scanner; Scanner java.util import java.util.List; List java.util import java.util.ArrayList; ArrayList java.util public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        List<Integer> t = new ArrayList<>();
        List<Integer> x = new ArrayList<>();
        List<Integer> y = new ArrayList<>();
        t.add(0);
        x.add(0);
        y.add(0);
        for(int i = 0;i < n;i++){
            t.add(sc.nextInt());
            x.add(sc.nextInt());
            y.add(sc.nextInt());
        }
        boolean can = true;
        for(int i = 1;i <= n;i++){
            int dt = t.get(i) - t.get(i-1);
            int dist = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i)-y.get(i-1));
            if(!(dist <= dt && ((dist % 2) == (dt % 2)))){
                can = false;
            }
        }
        if(can){
            System.out.println("Yes");
            return;
        }
        System.out.println("No");
    }
} Main public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        List<Integer> t = new ArrayList<>();
        List<Integer> x = new ArrayList<>();
        List<Integer> y = new ArrayList<>();
        t.add(0);
        x.add(0);
        y.add(0);
        for(int i = 0;i < n;i++){
            t.add(sc.nextInt());
            x.add(sc.nextInt());
            y.add(sc.nextInt());
        }
        boolean can = true;
        for(int i = 1;i <= n;i++){
            int dt = t.get(i) - t.get(i-1);
            int dist = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i)-y.get(i-1));
            if(!(dist <= dt && ((dist % 2) == (dt % 2)))){
                can = false;
            }
        }
        if(can){
            System.out.println("Yes");
            return;
        }
        System.out.println("No");
    } main {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        List<Integer> t = new ArrayList<>();
        List<Integer> x = new ArrayList<>();
        List<Integer> y = new ArrayList<>();
        t.add(0);
        x.add(0);
        y.add(0);
        for(int i = 0;i < n;i++){
            t.add(sc.nextInt());
            x.add(sc.nextInt());
            y.add(sc.nextInt());
        }
        boolean can = true;
        for(int i = 1;i <= n;i++){
            int dt = t.get(i) - t.get(i-1);
            int dist = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i)-y.get(i-1));
            if(!(dist <= dt && ((dist % 2) == (dt % 2)))){
                can = false;
            }
        }
        if(can){
            System.out.println("Yes");
            return;
        }
        System.out.println("No");
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc List<Integer> t = new ArrayList<>(); t new ArrayList<>() List<Integer> x = new ArrayList<>(); x new ArrayList<>() List<Integer> y = new ArrayList<>(); y new ArrayList<>() t.add(0) t.add t 0 x.add(0) x.add x 0 y.add(0) y.add y 0 for(int i = 0;i < n;i++){
            t.add(sc.nextInt());
            x.add(sc.nextInt());
            y.add(sc.nextInt());
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            t.add(sc.nextInt());
            x.add(sc.nextInt());
            y.add(sc.nextInt());
        } {
            t.add(sc.nextInt());
            x.add(sc.nextInt());
            y.add(sc.nextInt());
        } t.add(sc.nextInt()) t.add t sc.nextInt() sc.nextInt sc x.add(sc.nextInt()) x.add x sc.nextInt() sc.nextInt sc y.add(sc.nextInt()) y.add y sc.nextInt() sc.nextInt sc boolean can = true; can true for(int i = 1;i <= n;i++){
            int dt = t.get(i) - t.get(i-1);
            int dist = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i)-y.get(i-1));
            if(!(dist <= dt && ((dist % 2) == (dt % 2)))){
                can = false;
            }
        } int i = 1; int i = 1; i 1 i <= n i n i++ i++ i {
            int dt = t.get(i) - t.get(i-1);
            int dist = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i)-y.get(i-1));
            if(!(dist <= dt && ((dist % 2) == (dt % 2)))){
                can = false;
            }
        } {
            int dt = t.get(i) - t.get(i-1);
            int dist = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i)-y.get(i-1));
            if(!(dist <= dt && ((dist % 2) == (dt % 2)))){
                can = false;
            }
        } int dt = t.get(i) - t.get(i-1); dt t.get(i) - t.get(i-1) t.get(i) t.get t i t.get(i-1) t.get t i-1 i 1 int dist = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i)-y.get(i-1)); dist Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i)-y.get(i-1)) Math.abs(x.get(i)-x.get(i-1)) Math.abs Math x.get(i)-x.get(i-1) x.get(i) x.get x i x.get(i-1) x.get x i-1 i 1 Math.abs(y.get(i)-y.get(i-1)) Math.abs Math y.get(i)-y.get(i-1) y.get(i) y.get y i y.get(i-1) y.get y i-1 i 1 if(!(dist <= dt && ((dist % 2) == (dt % 2)))){
                can = false;
            } !(dist <= dt && ((dist % 2) == (dt % 2))) (dist <= dt && ((dist % 2) == (dt % 2))) dist <= dt dist dt ((dist % 2) == (dt % 2)) (dist % 2) dist 2 (dt % 2) dt 2 {
                can = false;
            } can = false can false if(can){
            System.out.println("Yes");
            return;
        } can {
            System.out.println("Yes");
            return;
        } System.out.println("Yes") System.out.println System.out System System.out "Yes" return; System.out.println("No") System.out.println 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();
        List<Integer> t = new ArrayList<>();
        List<Integer> x = new ArrayList<>();
        List<Integer> y = new ArrayList<>();
        t.add(0);
        x.add(0);
        y.add(0);
        for(int i = 0;i < n;i++){
            t.add(sc.nextInt());
            x.add(sc.nextInt());
            y.add(sc.nextInt());
        }
        boolean can = true;
        for(int i = 1;i <= n;i++){
            int dt = t.get(i) - t.get(i-1);
            int dist = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i)-y.get(i-1));
            if(!(dist <= dt && ((dist % 2) == (dt % 2)))){
                can = false;
            }
        }
        if(can){
            System.out.println("Yes");
            return;
        }
        System.out.println("No");
    }
} public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        List<Integer> t = new ArrayList<>();
        List<Integer> x = new ArrayList<>();
        List<Integer> y = new ArrayList<>();
        t.add(0);
        x.add(0);
        y.add(0);
        for(int i = 0;i < n;i++){
            t.add(sc.nextInt());
            x.add(sc.nextInt());
            y.add(sc.nextInt());
        }
        boolean can = true;
        for(int i = 1;i <= n;i++){
            int dt = t.get(i) - t.get(i-1);
            int dist = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i)-y.get(i-1));
            if(!(dist <= dt && ((dist % 2) == (dt % 2)))){
                can = false;
            }
        }
        if(can){
            System.out.println("Yes");
            return;
        }
        System.out.println("No");
    }
} Main
import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        List<Integer> t = new ArrayList<>();
        List<Integer> x = new ArrayList<>();
        List<Integer> y = new ArrayList<>();
        t.add(0);
        x.add(0);
        y.add(0);
        for(int i = 0;i < n;i++){
            t.add(sc.nextInt());
            x.add(sc.nextInt());
            y.add(sc.nextInt());
        }
        boolean can = true;
        for(int i = 1;i <= n;i++){
            int dt = t.get(i) - t.get(i-1);
            int dist = Math.abs(x.get(i)-x.get(i-1)) + Math.abs(y.get(i)-y.get(i-1));
            if(!(dist <= dt && ((dist % 2) == (dt % 2)))){
                can = false;
            }
        }
        if(can){
            System.out.println("Yes");
            return;
        }
        System.out.println("No");
    }
}
