object Main extends App {
  val rawList: Seq[Array[Int]] = (for (line <- io.Source.stdin.getLines) yield {
    line.split(" ").map(_.toInt)
  }).toSeq
  
  case class Input(t: Int, x: Int, y: Int)
  
  val n = rawList(0)(0)
  val list = rawList.tail.map(e => Input(e(0), e(1), e(2)))
  
  def check(term: Int, start: (Int, Int), end: (Int, Int)): Boolean = {
    val diffX = math.abs(end._1 - start._1)
    val diffY = math.abs(end._2 - start._2)
    val diff = diffX + diffY
    
    (diff <= term) && (diff % 2 == term % 2)
  }
  
  val results: Seq[Boolean] = for (index <- (0 to n - 1)) yield {
    if (index == 0) check(list(index).t, (0, 0), (list(index).x, list(index).y))
    else check(list(index).t - list(index - 1).t, (list(index - 1).x, list(index - 1).y), (list(index).x, list(index).y))
  }
  
  println(if (results.contains(false)) "No" else "Yes")
}