import Control.Monad
main = do
  n <- readLn
  t <- map (map read . words) <$> replicateM n getLine
  let x = [0, 0, 0] : t
  let a = foldl (&&) True $ zipWith resolve x (tail x)
  putStrLn $ if a then "Yes" else "No"

resolve [t1, x1, y1] [t2, x2, y2]
  | t < d = False
  | even (d - t) = True
  | otherwise = False
  where
    d = abs (x1 - x2) + abs (y1 - y2)
    t = t2 - t1
