from collections import defaultdict

import sys



sys.setrecursionlimit(10 ** 6)

int1 = lambda x: int(x) - 1

p2D = lambda x: print(*x, sep="\n")

def MI(): return map(int, sys.stdin.readline().split())

def LI(): return list(map(int, sys.stdin.readline().split()))

def LLI(rows_number): return [LI() for _ in range(rows_number)]



def main():

    n=int(input())

    cnt=defaultdict(int)

    for _ in range(n):

        a=int(input())

        cnt[a]+=1

    print(sum(v%2 for v in cnt.values()))

main()

from itertools import permutations

import sys



sys.setrecursionlimit(10 ** 6)

from bisect import *

from collections import *

from heapq import *



def II(): return int(sys.stdin.readline())

def MI(): return map(int, sys.stdin.readline().split())

def LI(): return list(map(int, sys.stdin.readline().split()))

def SI(): return sys.stdin.readline()[:-1]

def LLI(rows_number): return [LI() for _ in range(rows_number)]

int1 = lambda x: int(x) - 1

def MI1(): return map(int1, sys.stdin.readline().split())

def LI1(): return list(map(int1, sys.stdin.readline().split()))

p2D = lambda x: print(*x, sep="\n")

dij = [(1, 0), (0, 1), (-1, 0), (0, -1)]



def main():

    n=II()

    s=set()

    for _ in range(n):

        a=II()

        if a in s:s.remove(a)

        else:s.add(a)

    print(len(s))



main()

from collections import defaultdict
import sys

sys.setrecursionlimit(10**6)
int1 = lambda x: int(x) - 1
p2D = lambda x: print(*x, sep="\n")


def MI():
    return map(int, sys.stdin.readline().split())


def LI():
    return list(map(int, sys.stdin.readline().split()))


def LLI(rows_number):
    return [LI() for _ in range(rows_number)]


def main():
    n = int(input())
    cnt = defaultdict(int)
    for _ in range(n):
        a = int(input())
        cnt[a] += 1
    print(sum(v % 2 for v in cnt.values()))


main()

from itertools import permutations
import sys

sys.setrecursionlimit(10**6)
from bisect import *
from collections import *
from heapq import *


def II():
    return int(sys.stdin.readline())


def MI():
    return map(int, sys.stdin.readline().split())


def LI():
    return list(map(int, sys.stdin.readline().split()))


def SI():
    return sys.stdin.readline()[:-1]


def LLI(rows_number):
    return [LI() for _ in range(rows_number)]


int1 = lambda x: int(x) - 1


def MI1():
    return map(int1, sys.stdin.readline().split())


def LI1():
    return list(map(int1, sys.stdin.readline().split()))


p2D = lambda x: print(*x, sep="\n")
dij = [(1, 0), (0, 1), (-1, 0), (0, -1)]


def main():
    n = II()
    s = set()
    for _ in range(n):
        a = II()
        if a in s:
            s.remove(a)
        else:
            s.add(a)
    print(len(s))


main()

-from collections import defaultdict +from itertools import permutations -int1 = lambda x: int(x) - 1 -p2D = lambda x: print(*x, sep="\n") +from bisect import * +from collections import * +from heapq import * + + +def II(): +    return int(sys.stdin.readline()) +def SI(): +    return sys.stdin.readline()[:-1] + + +int1 = lambda x: int(x) - 1 + + +def MI1(): +    return map(int1, sys.stdin.readline().split()) + + +def LI1(): +    return list(map(int1, sys.stdin.readline().split())) + + +p2D = lambda x: print(*x, sep="\n") +dij = [(1, 0), (0, 1), (-1, 0), (0, -1)] + + -    n = int(input()) -    cnt = defaultdict(int) +    n = II() +    s = set() -        a = int(input()) -        cnt[a] += 1 -    print(sum(v % 2 for v in cnt.values())) +        a = II() +        if a in s: +            s.remove(a) +        else: +            s.add(a) +    print(len(s))