#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <cctype>
#include <ctime>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>

using namespace std;

typedef long long ll;
#ifdef __linux
#define LLD "%lld"
#else
#define LLD "%I64d"
#endif

#define NMAX 100000

struct p{
	int x,y,t;

	inline bool operator< (const p &b)const{
		return t<b.t;
	}
};

int n;
p ps[NMAX+1000];

inline int dis(int x1,int y1,int x2,int y2){
	return abs(x2-x1)+abs(y2-y1);
}

inline bool check(){
	int i;

	p last=(p){0,0,0};
	for(i=0;i<n;i++){
		int dd=dis(last.x,last.y,ps[i].x,ps[i].y);
		int dt=ps[i].t-last.t;
		if(dt<dd)return false;
		int lt=dt-dd;
		if(lt%2)return false;
		last=ps[i];
	}
	return true;
}


int main(){
	int i;

	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d%d%d",&ps[i].t,&ps[i].x,&ps[i].y);
	}
	sort(ps,ps+n);

	if(check())printf("YES\n");
	else printf("NO\n");
	return 0;
}

