N = int(eval(input()))

T = [0]*100000

X= [0]*100000

Y= [0]*100000

x = 0

y = 0



for n in range(N):

        T[n],X[n],Y[n] = (list(map(int, input().split())))



flag = 1

for n in range(N):

    #print(n)

    if flag == 0:

        continue





    if n == 0:

        count = T[n]

    else:

        count = T[n] - T[n-1]

        x = X[n-1]

        y = Y[n-1]

    c = 0

    end = 0

    while True:

        if end == 1:

            break

        s_x = X[n] - x

        s_y = Y[n] - y

    #    print(str(s_x)+' '+str(s_y))



        if ((s_x != 0 or s_y !=0) )and (c!=count):

            if s_x >0:

                x +=1

                c += 1

            elif s_x < 0:

                x -= 1

                c+=1

            elif s_y > 0:

                y +=1

                c += 1

            elif s_y < 0:

                y -= 1

                c+=1

        elif  ((s_x == 0 and s_y == 0) )and (c!=count):

                x +=1

                c +=1

        elif c==count:

            if (x == X[n] and y ==Y[n]):

                flag = 1

                end=1

            else:

                flag=0

                end =1







if flag == 1:

    print('Yes')

else:

    print('No')

N  = int(eval(input()))

t = [0]*110000

x= [0]*110000

y= [0]*110000



for n in range(N):

        t[n+1],x[n+1],y[n+1] = (list(map(int, input().split())))



can = True



for i in range(N):

    dt = t[i+1] - t[i]

    dist = abs(x[i+1] - x[i]) + abs(y[i+1] - y[i])



    if dt < dist: #dt が大きければたどり着ける

        can = False

    if (dist % 2 != dt % 2):#動いていなければ偶数奇数がずれる

        can = False



if can == True:

    print('Yes')

else:

    print('No')

N = int(eval(input()))
T = [0] * 100000
X = [0] * 100000
Y = [0] * 100000
x = 0
y = 0
for n in range(N):
    T[n], X[n], Y[n] = list(map(int, input().split()))
flag = 1
for n in range(N):
    # print(n)
    if flag == 0:
        continue
    if n == 0:
        count = T[n]
    else:
        count = T[n] - T[n - 1]
        x = X[n - 1]
        y = Y[n - 1]
    c = 0
    end = 0
    while True:
        if end == 1:
            break
        s_x = X[n] - x
        s_y = Y[n] - y
        #    print(str(s_x)+' '+str(s_y))
        if ((s_x != 0 or s_y != 0)) and (c != count):
            if s_x > 0:
                x += 1
                c += 1
            elif s_x < 0:
                x -= 1
                c += 1
            elif s_y > 0:
                y += 1
                c += 1
            elif s_y < 0:
                y -= 1
                c += 1
        elif ((s_x == 0 and s_y == 0)) and (c != count):
            x += 1
            c += 1
        elif c == count:
            if x == X[n] and y == Y[n]:
                flag = 1
                end = 1
            else:
                flag = 0
                end = 1
if flag == 1:
    print("Yes")
else:
    print("No")

N = int(eval(input()))
t = [0] * 110000
x = [0] * 110000
y = [0] * 110000
for n in range(N):
    t[n + 1], x[n + 1], y[n + 1] = list(map(int, input().split()))
can = True
for i in range(N):
    dt = t[i + 1] - t[i]
    dist = abs(x[i + 1] - x[i]) + abs(y[i + 1] - y[i])
    if dt < dist:  # dt が大きければたどり着ける
        can = False
    if dist % 2 != dt % 2:  # 動いていなければ偶数奇数がずれる
        can = False
if can == True:
    print("Yes")
else:
    print("No")

-T = [0] * 100000 -X = [0] * 100000 -Y = [0] * 100000 -x = 0 -y = 0 +t = [0] * 110000 +x = [0] * 110000 +y = [0] * 110000 -    T[n], X[n], Y[n] = list(map(int, input().split())) -flag = 1 -for n in range(N): -    # print(n) -    if flag == 0: -        continue -    if n == 0: -        count = T[n] -    else: -        count = T[n] - T[n - 1] -        x = X[n - 1] -        y = Y[n - 1] -    c = 0 -    end = 0 -    while True: -        if end == 1: -            break -        s_x = X[n] - x -        s_y = Y[n] - y -        #    print(str(s_x)+' '+str(s_y)) -        if ((s_x != 0 or s_y != 0)) and (c != count): -            if s_x > 0: -                x += 1 -                c += 1 -            elif s_x < 0: -                x -= 1 -                c += 1 -            elif s_y > 0: -                y += 1 -                c += 1 -            elif s_y < 0: -                y -= 1 -                c += 1 -        elif ((s_x == 0 and s_y == 0)) and (c != count): -            x += 1 -            c += 1 -        elif c == count: -            if x == X[n] and y == Y[n]: -                flag = 1 -                end = 1 -            else: -                flag = 0 -                end = 1 -if flag == 1: +    t[n + 1], x[n + 1], y[n + 1] = list(map(int, input().split())) +can = True +for i in range(N): +    dt = t[i + 1] - t[i] +    dist = abs(x[i + 1] - x[i]) + abs(y[i + 1] - y[i]) +    if dt < dist:  # dt が大きければたどり着ける +        can = False +    if dist % 2 != dt % 2:  # 動いていなければ偶数奇数がずれる +        can = False +if can == True: