#include <bits/stdc++.h>
int traveling(int t, int *start, int *dest, int *move);
int move_0[2] = {1, 0};
int move_1[2] = {-1, 0};
int move_2[2] = {0, 1};
int move_3[2] = {0, -1};
int main(int argc, char const *argv[]) {
  int n, ct, pt = 0, x, y;
  int start[2] = {0, 0};
  int dest[2];
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d %d %d", &ct, &x, &y);
    dest[1] = x;
    dest[0] = y;
    if (!traveling(ct - pt, start, dest, NULL)) {
      puts("No");
      return 0;
    }
    start[1] = dest[1];
    start[0] = dest[0];
    pt = ct;
  }
  puts("Yes");
  return 0;
}
int traveling(int t, int *start, int *dest, int *move) {
  if (t < 0) return 0;
  if (move != NULL) {
    start[1] -= move[1];
    start[0] -= move[0];
    if (start[1] < 0 || start[0] < 0) return 0;
    if (start[1] == 0 && start[0] == 0) return 1;
  }
  if (traveling(t - 1, start, dest, move_0)) return 1;
  if (traveling(t - 1, start, dest, move_1)) return 1;
  if (traveling(t - 1, start, dest, move_2)) return 1;
  if (traveling(t - 1, start, dest, move_3)) return 1;
}
