# ARC089C - Traveling (ABC086C)

n = int(eval(input()))

for _ in range(n):

    t, x, y = list(map(int, input().split()))

    if x + y > t or (t + x + y) % 2 != 0:

        print("No")

        break

else:

    print("Yes")
# ARC089C - Traveling (ABC086C)

def main():

    n = int(eval(input()))

    for _ in range(n):

        t, x, y = list(map(int, input().split()))

        if x + y > t or (t + x + y) % 2 != 0:

            print("No")

            break

    else:

        print("Yes")





if __name__ == "__main__":

    main()
# ARC089C - Traveling (ABC086C)
n = int(eval(input()))
for _ in range(n):
    t, x, y = list(map(int, input().split()))
    if x + y > t or (t + x + y) % 2 != 0:
        print("No")
        break
else:
    print("Yes")

# ARC089C - Traveling (ABC086C)
def main():
    n = int(eval(input()))
    for _ in range(n):
        t, x, y = list(map(int, input().split()))
        if x + y > t or (t + x + y) % 2 != 0:
            print("No")
            break
    else:
        print("Yes")


if __name__ == "__main__":
    main()

-n = int(eval(input())) -for _ in range(n): -    t, x, y = list(map(int, input().split())) -    if x + y > t or (t + x + y) % 2 != 0: -        print("No") -        break -else: -    print("Yes") +def main(): +    n = int(eval(input())) +    for _ in range(n): +        t, x, y = list(map(int, input().split())) +        if x + y > t or (t + x + y) % 2 != 0: +            print("No") +            break +    else: +        print("Yes") + + +if __name__ == "__main__": +    main()