#include <bits/stdc++.h>
using namespace std;
int N;
vector<int> T_vec;
vector<int> X_vec;
vector<int> Y_vec;
int dx[4]{1, 0, -1, 0};
int dy[4]{0, 1, 0, -1};
bool solve_multi(int t, int c_x, int c_y, int x, int y) {
  int distance = abs(c_x - x) + abs(c_y - y);
  if (distance > t) return false;
  if (c_x == x && c_y == y && t == 0) return true;
  bool flag = false;
  for (int i = 0; i < 4; ++i) {
    flag |= solve_multi(t - 1, c_x + dx[i], c_y + dy[i], x, y);
  }
  return flag;
}
bool solve() {
  int x{0}, y{0};
  bool flag = true;
  flag &= solve_multi(T_vec.at(0), 0, 0, X_vec.at(0), Y_vec.at(0));
  if (!flag) return false;
  for (int i = 0; i < N - 2; ++i) {
    int c_x = X_vec.at(i);
    int c_y = Y_vec.at(i);
    int x = X_vec.at(i + 1);
    int y = Y_vec.at(i + 1);
    int t = T_vec.at(i + 1) - T_vec.at(i);
    flag &= solve_multi(t, c_x, c_y, x, y);
    if (!flag) return false;
  }
  return flag;
}
int main(int argc, char **argv) {
  cin >> N;
  T_vec.resize(N);
  X_vec.resize(N);
  Y_vec.resize(N);
  for (int i = 0; i < N; ++i) cin >> T_vec[i] >> X_vec[i] >> Y_vec[i];
  std::cout << (solve() ? "Yes" : "No") << std::endl;
}
