n = int(eval(input()))

txy = [list(map(int, input().split())) for _ in range(n)]



flg = False

for i in range(n):

    t, x, y = txy[i]

    if x + y > t:

        flg = False

        break



    if (x + y) % 2 == 0:

        if t % 2 == 0:

            flg = True

        else:

            flg = False

            break

    else:

        if t % 2 != 0:

            flg = True

        else:

            flg = False

            break

if flg:

    print("Yes")

else:

    print("No")
import sys



sys.setrecursionlimit(10 ** 7)

input = sys.stdin.readline

f_inf = float('inf')

mod = 10 ** 9 + 7





def resolve():

    n = int(eval(input()))

    XY = [list(map(int, input().split())) for _ in range(n)]

    px, py, pt = 0, 0, 0

    for i in range(n):

        t, x, y = XY[i]

        if abs(x - px) + abs(y - py) > abs(t - pt):

            print("No")

            break

        else:

            if (abs(x - px) + abs(y - py) - abs(t - pt)) % 2 != 0:

                print("No")

                break

            px, py, pt = x, y, t

    else:

        print("Yes")





if __name__ == '__main__':

    resolve()

n = int(eval(input()))
txy = [list(map(int, input().split())) for _ in range(n)]
flg = False
for i in range(n):
    t, x, y = txy[i]
    if x + y > t:
        flg = False
        break
    if (x + y) % 2 == 0:
        if t % 2 == 0:
            flg = True
        else:
            flg = False
            break
    else:
        if t % 2 != 0:
            flg = True
        else:
            flg = False
            break
if flg:
    print("Yes")
else:
    print("No")

import sys

sys.setrecursionlimit(10**7)
input = sys.stdin.readline
f_inf = float("inf")
mod = 10**9 + 7


def resolve():
    n = int(eval(input()))
    XY = [list(map(int, input().split())) for _ in range(n)]
    px, py, pt = 0, 0, 0
    for i in range(n):
        t, x, y = XY[i]
        if abs(x - px) + abs(y - py) > abs(t - pt):
            print("No")
            break
        else:
            if (abs(x - px) + abs(y - py) - abs(t - pt)) % 2 != 0:
                print("No")
                break
            px, py, pt = x, y, t
    else:
        print("Yes")


if __name__ == "__main__":
    resolve()

-n = int(eval(input())) -txy = [list(map(int, input().split())) for _ in range(n)] -flg = False -for i in range(n): -    t, x, y = txy[i] -    if x + y > t: -        flg = False -        break -    if (x + y) % 2 == 0: -        if t % 2 == 0: -            flg = True +import sys + +sys.setrecursionlimit(10**7) +input = sys.stdin.readline +f_inf = float("inf") +mod = 10**9 + 7 + + +def resolve(): +    n = int(eval(input())) +    XY = [list(map(int, input().split())) for _ in range(n)] +    px, py, pt = 0, 0, 0 +    for i in range(n): +        t, x, y = XY[i] +        if abs(x - px) + abs(y - py) > abs(t - pt): +            print("No") +            break -            flg = False -            break +            if (abs(x - px) + abs(y - py) - abs(t - pt)) % 2 != 0: +                print("No") +                break +            px, py, pt = x, y, t -        if t % 2 != 0: -            flg = True -        else: -            flg = False -            break -if flg: -    print("Yes") -else: -    print("No") +        print("Yes") + + +if __name__ == "__main__": +    resolve()