N = int(input())

TXY = [(0,0,0)]

for i in range(N):

    TXY.append(tuple(map(int, input().split())))



def judge(N:int, TXY:tuple) -> bool:

    for i in range(N):

        delta_t = TXY[i+1][0] - TXY[i][0]

        delta_x = abs(TXY[i+1][1] - TXY[i][1])

        delta_y = abs(TXY[i+1][2] - TXY[i][2])

        

        if (delta_t%2 != (delta_x+delta_y)%2)\

          or (delta_t < (delta_x+delta_y)):

            return False

        

    return True



if judge(N,TXY):

    print("Yes")

else:

    print("No")

import sys

stdin = sys.stdin

 

sys.setrecursionlimit(10**5) 

 

def li(): return list(map(int, stdin.readline().split()))

def li_(): return [int(x)-1 for x in stdin.readline().split()]

def lf(): return list(map(float, stdin.readline().split()))

def ls(): return stdin.readline().split()

def ns(): return stdin.readline().rstrip()

def lc(): return list(ns())

def ni(): return int(stdin.readline())

def nf(): return float(stdin.readline())



n = ni()



txy = [(0,0,0)]

for _ in range(n):

    txy.append(tuple(li()))

 

exist = True



for i in range(n):

    tp,xp,yp = txy[i]

    tn,xn,yn = txy[i+1]

    

    dt = tn-tp

    dx = xn-xp

    dy = yn-yp

    

    if abs(dx) + abs(dy) > dt:

        exist = False

        break

    

    if (dx+dy)%2 != dt%2:

        exist = False

        break

    

if exist:

    print("Yes")

else:

    print("No")
N = int(input())
TXY = [(0, 0, 0)]
for i in range(N):
    TXY.append(tuple(map(int, input().split())))


def judge(N: int, TXY: tuple) -> bool:
    for i in range(N):
        delta_t = TXY[i + 1][0] - TXY[i][0]
        delta_x = abs(TXY[i + 1][1] - TXY[i][1])
        delta_y = abs(TXY[i + 1][2] - TXY[i][2])
        if (delta_t % 2 != (delta_x + delta_y) % 2) or (delta_t < (delta_x + delta_y)):
            return False
    return True


if judge(N, TXY):
    print("Yes")
else:
    print("No")

import sys

stdin = sys.stdin
sys.setrecursionlimit(10**5)


def li():
    return list(map(int, stdin.readline().split()))


def li_():
    return [int(x) - 1 for x in stdin.readline().split()]


def lf():
    return list(map(float, stdin.readline().split()))


def ls():
    return stdin.readline().split()


def ns():
    return stdin.readline().rstrip()


def lc():
    return list(ns())


def ni():
    return int(stdin.readline())


def nf():
    return float(stdin.readline())


n = ni()
txy = [(0, 0, 0)]
for _ in range(n):
    txy.append(tuple(li()))
exist = True
for i in range(n):
    tp, xp, yp = txy[i]
    tn, xn, yn = txy[i + 1]
    dt = tn - tp
    dx = xn - xp
    dy = yn - yp
    if abs(dx) + abs(dy) > dt:
        exist = False
        break
    if (dx + dy) % 2 != dt % 2:
        exist = False
        break
if exist:
    print("Yes")
else:
    print("No")

-N = int(input()) -TXY = [(0, 0, 0)] -for i in range(N): -    TXY.append(tuple(map(int, input().split()))) +import sys + +stdin = sys.stdin +sys.setrecursionlimit(10**5) -def judge(N: int, TXY: tuple) -> bool: -    for i in range(N): -        delta_t = TXY[i + 1][0] - TXY[i][0] -        delta_x = abs(TXY[i + 1][1] - TXY[i][1]) -        delta_y = abs(TXY[i + 1][2] - TXY[i][2]) -        if (delta_t % 2 != (delta_x + delta_y) % 2) or (delta_t < (delta_x + delta_y)): -            return False -    return True +def li(): +    return list(map(int, stdin.readline().split())) -if judge(N, TXY): +def li_(): +    return [int(x) - 1 for x in stdin.readline().split()] + + +def lf(): +    return list(map(float, stdin.readline().split())) + + +def ls(): +    return stdin.readline().split() + + +def ns(): +    return stdin.readline().rstrip() + + +def lc(): +    return list(ns()) + + +def ni(): +    return int(stdin.readline()) + + +def nf(): +    return float(stdin.readline()) + + +n = ni() +txy = [(0, 0, 0)] +for _ in range(n): +    txy.append(tuple(li())) +exist = True +for i in range(n): +    tp, xp, yp = txy[i] +    tn, xn, yn = txy[i + 1] +    dt = tn - tp +    dx = xn - xp +    dy = yn - yp +    if abs(dx) + abs(dy) > dt: +        exist = False +        break +    if (dx + dy) % 2 != dt % 2: +        exist = False +        break +if exist: