import Control.Monad
import Debug.Trace

main = do
  n <- read <$> getLine :: IO Int
  txys <- replicateM n $
    (\(t:x:[y]) -> (t,x,y)) . map readInt . words <$> getLine
  printAnsLn $  solve $ (0,0,0) : txys

solve (_:[]) = True
solve txys @ ((t1,x1,y1):(t2,x2,y2):_) =
--  traceShow (txys,difft,dist) $
  if isPossible then solve (tail txys)
  else False
  where
    difft = t2 - t1
    dist = x2-x1 + y2-y1
    isPossible = difft>=dist && ((dist-difft) `mod` 2==0)
    
  
readInt :: String -> Int
readInt = read

printAnsLn b = putStrLn $ if b then "Yes" else "No"
