f :: [String] ->[(Int,Int,Int)]
f []=[]
f (x:xs)=let (t1:x1:y1:[])=map read (words x)::[Int]
         in (t1,x1,y1):f xs

f2 ::(Int,Int,Int)->[(Int,Int,Int)]->String
f2 _ [] = "Yes"
f2 (t0,x0,y0) ((t1,x1,y1):xs) = let d = abs(x0-x1)+abs(y0-y1)
                                in if t1-t0>=d && (t1-t0-d) `mod` 2==0 then f2 (t1,x1,y1) xs else "No"

main = do
      e<-getLine
      xs<-getContents
      let ys=f (lines xs)
      putStrLn $ f2 (0,0,0) ys