import java.util.*;

public class Main {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int tPrevious = 0;
        int xPrevious = 0;
        int yPrevious = 0;
        boolean can = true;
        for (int i=0;i<n;i++) {
            int t = sc.nextInt();
            int x = sc.nextInt();
            int y = sc.nextInt();
            int dt = t - tPrevious;
            int dist = Math.abs(x - xPrevious) + Math.abs(y - yPrevious);
            if (dt < dist) {
                can = false;
                break;
            }
            if (((dist & 1) ^ (dt & 1) ) == 1) {
                can = false;
                break;
            }
            tPrevious = t;
            xPrevious = x;
            yPrevious = y;
        }
        if (can)
            System.out.println("Yes");
        else
            System.out.println("No");
    }
} import java.util.*; util.* java public class Main {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int tPrevious = 0;
        int xPrevious = 0;
        int yPrevious = 0;
        boolean can = true;
        for (int i=0;i<n;i++) {
            int t = sc.nextInt();
            int x = sc.nextInt();
            int y = sc.nextInt();
            int dt = t - tPrevious;
            int dist = Math.abs(x - xPrevious) + Math.abs(y - yPrevious);
            if (dt < dist) {
                can = false;
                break;
            }
            if (((dist & 1) ^ (dt & 1) ) == 1) {
                can = false;
                break;
            }
            tPrevious = t;
            xPrevious = x;
            yPrevious = y;
        }
        if (can)
            System.out.println("Yes");
        else
            System.out.println("No");
    }
} Main public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int tPrevious = 0;
        int xPrevious = 0;
        int yPrevious = 0;
        boolean can = true;
        for (int i=0;i<n;i++) {
            int t = sc.nextInt();
            int x = sc.nextInt();
            int y = sc.nextInt();
            int dt = t - tPrevious;
            int dist = Math.abs(x - xPrevious) + Math.abs(y - yPrevious);
            if (dt < dist) {
                can = false;
                break;
            }
            if (((dist & 1) ^ (dt & 1) ) == 1) {
                can = false;
                break;
            }
            tPrevious = t;
            xPrevious = x;
            yPrevious = y;
        }
        if (can)
            System.out.println("Yes");
        else
            System.out.println("No");
    } main {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int tPrevious = 0;
        int xPrevious = 0;
        int yPrevious = 0;
        boolean can = true;
        for (int i=0;i<n;i++) {
            int t = sc.nextInt();
            int x = sc.nextInt();
            int y = sc.nextInt();
            int dt = t - tPrevious;
            int dist = Math.abs(x - xPrevious) + Math.abs(y - yPrevious);
            if (dt < dist) {
                can = false;
                break;
            }
            if (((dist & 1) ^ (dt & 1) ) == 1) {
                can = false;
                break;
            }
            tPrevious = t;
            xPrevious = x;
            yPrevious = y;
        }
        if (can)
            System.out.println("Yes");
        else
            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 int tPrevious = 0; tPrevious 0 int xPrevious = 0; xPrevious 0 int yPrevious = 0; yPrevious 0 boolean can = true; can true for (int i=0;i<n;i++) {
            int t = sc.nextInt();
            int x = sc.nextInt();
            int y = sc.nextInt();
            int dt = t - tPrevious;
            int dist = Math.abs(x - xPrevious) + Math.abs(y - yPrevious);
            if (dt < dist) {
                can = false;
                break;
            }
            if (((dist & 1) ^ (dt & 1) ) == 1) {
                can = false;
                break;
            }
            tPrevious = t;
            xPrevious = x;
            yPrevious = y;
        } int i=0; int i=0; i 0 i<n i n i++ i++ i {
            int t = sc.nextInt();
            int x = sc.nextInt();
            int y = sc.nextInt();
            int dt = t - tPrevious;
            int dist = Math.abs(x - xPrevious) + Math.abs(y - yPrevious);
            if (dt < dist) {
                can = false;
                break;
            }
            if (((dist & 1) ^ (dt & 1) ) == 1) {
                can = false;
                break;
            }
            tPrevious = t;
            xPrevious = x;
            yPrevious = y;
        } {
            int t = sc.nextInt();
            int x = sc.nextInt();
            int y = sc.nextInt();
            int dt = t - tPrevious;
            int dist = Math.abs(x - xPrevious) + Math.abs(y - yPrevious);
            if (dt < dist) {
                can = false;
                break;
            }
            if (((dist & 1) ^ (dt & 1) ) == 1) {
                can = false;
                break;
            }
            tPrevious = t;
            xPrevious = x;
            yPrevious = y;
        } int t = sc.nextInt(); t sc.nextInt() sc.nextInt sc int x = sc.nextInt(); x sc.nextInt() sc.nextInt sc int y = sc.nextInt(); y sc.nextInt() sc.nextInt sc int dt = t - tPrevious; dt t - tPrevious t tPrevious int dist = Math.abs(x - xPrevious) + Math.abs(y - yPrevious); dist Math.abs(x - xPrevious) + Math.abs(y - yPrevious) Math.abs(x - xPrevious) Math.abs Math x - xPrevious x xPrevious Math.abs(y - yPrevious) Math.abs Math y - yPrevious y yPrevious if (dt < dist) {
                can = false;
                break;
            } dt < dist dt dist {
                can = false;
                break;
            } can = false can false break; if (((dist & 1) ^ (dt & 1) ) == 1) {
                can = false;
                break;
            } ((dist & 1) ^ (dt & 1) ) == 1 ((dist & 1) ^ (dt & 1) ) (dist & 1) dist 1 (dt & 1) dt 1 1 {
                can = false;
                break;
            } can = false can false break; tPrevious = t tPrevious t xPrevious = x xPrevious x yPrevious = y yPrevious y if (can)
            System.out.println("Yes");
        else
            System.out.println("No"); can System.out.println("Yes") System.out.println System.out System System.out "Yes" 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();
        int tPrevious = 0;
        int xPrevious = 0;
        int yPrevious = 0;
        boolean can = true;
        for (int i=0;i<n;i++) {
            int t = sc.nextInt();
            int x = sc.nextInt();
            int y = sc.nextInt();
            int dt = t - tPrevious;
            int dist = Math.abs(x - xPrevious) + Math.abs(y - yPrevious);
            if (dt < dist) {
                can = false;
                break;
            }
            if (((dist & 1) ^ (dt & 1) ) == 1) {
                can = false;
                break;
            }
            tPrevious = t;
            xPrevious = x;
            yPrevious = y;
        }
        if (can)
            System.out.println("Yes");
        else
            System.out.println("No");
    }
} public class Main {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int tPrevious = 0;
        int xPrevious = 0;
        int yPrevious = 0;
        boolean can = true;
        for (int i=0;i<n;i++) {
            int t = sc.nextInt();
            int x = sc.nextInt();
            int y = sc.nextInt();
            int dt = t - tPrevious;
            int dist = Math.abs(x - xPrevious) + Math.abs(y - yPrevious);
            if (dt < dist) {
                can = false;
                break;
            }
            if (((dist & 1) ^ (dt & 1) ) == 1) {
                can = false;
                break;
            }
            tPrevious = t;
            xPrevious = x;
            yPrevious = y;
        }
        if (can)
            System.out.println("Yes");
        else
            System.out.println("No");
    }
} Main
import java.util.*;

public class Main {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int tPrevious = 0;
        int xPrevious = 0;
        int yPrevious = 0;
        boolean can = true;
        for (int i=0;i<n;i++) {
            int t = sc.nextInt();
            int x = sc.nextInt();
            int y = sc.nextInt();
            int dt = t - tPrevious;
            int dist = Math.abs(x - xPrevious) + Math.abs(y - yPrevious);
            if (dt < dist) {
                can = false;
                break;
            }
            if (((dist & 1) ^ (dt & 1) ) == 1) {
                can = false;
                break;
            }
            tPrevious = t;
            xPrevious = x;
            yPrevious = y;
        }
        if (can)
            System.out.println("Yes");
        else
            System.out.println("No");
    }
}