'use strict'

function main(s) {

  // 入力処理
  const input = s.split('\n').slice(1, -1);

  // 判定用
  let prev_t = 0;
  let prev_x = 0;
  let prev_y = 0;
  let result = 'Yes';

  input.forEach(t => {

    const next = t.split(' ').map(m => Number(m));
    let next_t = next[0];
    let next_x = next[1];
    let next_y = next[2];

    // 移動可能ホップ数
    let canHop = next_t - prev_t;

    // 実際のホップ数
    let hopped = Math.abs(prev_x - next_x) + Math.abs(prev_y - next_y);

    // 移動可能かどうか
    if(canHop < hopped || (((next_t + 2) % 2) !== ((next_x + next_y + 2) % 2))) {
      result = 'No';
    }

    // 更新
    prev_t = next_t;
    prev_x = next_x;
    prev_y = next_y;
  })

  console.log(result);
}

main(require("fs").readFileSync("/dev/stdin", "utf8"));
