#include <cstdio>
#include <iostream>
#include <set>
#include <algorithm>
#include <string>
#include <cstring>
#include <map>
#include <cmath>
#include <queue>
using namespace std;
const int maxn = 1e5 + 100;
struct p{
    int x,y,t;
}a[maxn];
bool cmp(p a,p b){
     return a.t < b.t;
}
int main(){
    int N;
    scanf("%d",&N);
    for (int i = 0; i < N; i++){
        scanf("%d%d%d",&a[i].t,&a[i].x,&a[i].y);
    }
    a[N].t = 0;
    a[N].x = 0;
    a[N].y = 0;
    sort(a,a + N + 1, cmp);
    for (int i = 1; i <= N; i++){
        if (a[i].t == a[i - 1].t)
        {
             printf("No\n");
             return 0;
        }
        int dis = abs(a[i].x - a[i - 1].x)  + abs(a[i].y - a[i - 1].y);
        int t = abs(a[i].t - a[i - 1].t);
        if (dis > t)
        {
             printf("No\n");
             return 0;
        }else 
        {
            if (dis < t)
            {
                if ((t - dis) & 1)
                {
                    printf("No\n");
                    return 0;
                }
            }
        }
    }
    printf("Yes\n");
}