object Main {
  def main(args: Array[String]): Unit = {
    // var prev_place = Array(0, 0, 0)
    val n = io.StdIn.readLine().toInt

    val inputs = Stream.continually(io.StdIn.readLine().split(' ').map { _.toInt }) take n

    val ls = Array(0,0,0) +: inputs

    val diff = (inputs zip ls) map {
      case (x,y) => (x zip y) map {
        case (a,b) => a-b
      }
    }

    def check(x:Array[Int]): Boolean = {
      return x(1) + x(2) <= x(0) && (x sum) % 2 == 0
    }

    if (diff.forall(check))
      println("Yes")
    else
      println("No")

/*
    var result = true
    var i = 0
    while (i < n && result == true) {
      val place = io.StdIn.readLine().split(' ').map({ _.toInt })
      val time = place(0) - prev_place(0)
      val move = place.zip(prev_place).map({ case (x, y) => x-y }).drop(1)

      if (move.sum > time)
        result = false

      if ((time + move.sum) % 2 == 1)
        result = false

      prev_place = place
      i += 1
    }

    if (result == true)
      println("Yes")
    else
      println("No")
*/
  }
}
