N = int(input())
A_lis = list(map(int, input().split()))
A_lis.sort()
B_lis = []

Al0 = A_lis.pop(0)
B_lis.append(Al0)

def init_lis(Al):
	for i in range(N-1):
		for r in range(1, N-1):
			if Al0 ^ A_lis[r] == A_lis[i]:
				Ai = A_lis[i]
				Ar = A_lis[r]
				del A_lis[i]
				del A_lis[r-1]
				return(Ai,Ar)
	return(False,False)

Ai0,Ar0 = init_lis(Al0)
B_lis.append(Ai0)
B_lis.append(Ar0)
if Ai0==False:
	print("No")
	exit()

for i in range(2,N-1):
	is_good = False
	for r in range(len(A_lis)):
		is_good = False
		if B_lis[i-1] ^ A_lis[r] == B_lis[i]:
			is_good = True
			B_lis.append(A_lis[r])
			del A_lis[r]
			break
	if is_good == False:
		print("No")
		exit()

if B_lis[N-2]^B_lis[0] == B_lis[N-1]:
	print("Yes")
else:
	print("No")
