import qualified Data.ByteString.Char8 as B
import Control.Monad (replicateM)
import qualified Data.Set as S
import qualified Data.Vector.Unboxed as VU
import Data.Maybe (fromJust)

main = do
  n <- readLn
  an <- VU.replicateM n  (fst . fromJust . B.readInt <$> B.getLine)
  print $ S.size $ VU.foldl (\acc x -> if S.member x acc then S.delete x acc else S.insert x acc) S.empty an