"use strict";

var main = function main(input) {
  // 奇数進むには奇数秒、偶数進むには偶数秒必要
  // 秒数<距離は無理 -> 秒数>=距離 && 秒数の偶奇==距離の偶奇 ならいける
  // 次の点までの時間を秒数, 次の点までの総距離(x方向とy方向の和)を距離とする
  var args = input.split('\n');
  var T = [];
  var posX = [];
  var posY = [];
  args.forEach(function (element, i) {
    if (i > 0 && element != '') {
      T.push(element.split(' ')[0]);
      posX.push(element.split(' ')[1]);
      posY.push(element.split(' ')[2]);
    }
  });
  var X = 0;
  var Y = 0;
  var now = 0;
  var flag = true;

  for (var i = 0; i < T.length; i++) {
    var element = T[i]; // 総移動距離の計算

    var distance = Math.abs(X - posX[i]) + Math.abs(Y - posY[i]);
    var time = element - now;

    if (distance > time || distance % 2 != time % 2) {
      flag = false;
      break;
    }

    X = posX[i];
    Y = posY[i];
    now = element;
  }

  if (flag) {
    console.log('Yes');
  } else {
    console.log('No');
  }
};

main(require('fs').readFileSync('/dev/stdin', 'utf-8'));