import Control.Monad
main = do
  n <- readLn
  t <- map (map read . words) <$> replicateM n getLine
  putStrLn $ resolve ([0, 0, 0]:t)

check2 n m
  | even n && even m = True
  | odd n && odd m = True
  | otherwise = False

check dt dl
  | dt < dl = False
  | otherwise = check2 dt dl

resolve [] = "Yes"
resolve tt
  | ((length tt) == 1) = "Yes"
  | otherwise = do
  let (tt1:tt2:_) = tt
  let [t1, x1, y1] = tt1
  let [t2, x2, y2] = tt2
  let dt = t2 - t1
  let dd = (x2 - x1) + (y2 - y1)
  if not $ check dt dd
    then "No"
    else resolve $ drop 1 tt
