fun main(args: Array<String>) {
    val N = readLine()!!.toInt()


    var currentTime = 0
    var currentX = 0
    var currentY = 0
    (0 until N).forEach { i ->
        val (t, x, y) = readLine()!!.split(" ").map { it.toInt() }
        val timeDiff = t - currentTime
        val xDiff =  x - currentX
        val yDiff = y - currentY

        if (!isPossible(timeDiff, xDiff, yDiff)) {
            println("No")
            return
        }

        // Finalize
        currentTime = t
        currentX = x
        currentY = y
    }
    println("Yes")
}

fun isPossible(tDiff: Int, xDiff: Int, yDiff: Int) : Boolean {
    var commandCountShouldBeUsed = tDiff
    commandCountShouldBeUsed -= Math.abs(xDiff)
    commandCountShouldBeUsed -= Math.abs(yDiff)

    if (commandCountShouldBeUsed == 0) {
        return true
    } else if (commandCountShouldBeUsed < 0) {
        return false
    } else {
        return commandCountShouldBeUsed %2 == 0
    }
}
