# -*- coding: utf-8 -*-
import numpy as np
#入力
#a = int(input())
#b,c = map(int, input().split())
#s = input()

N = int(input())
s = input()
a = np.asarray(s.split(), dtype=int)

#処理

d = {}
for val  in a:
    if val in d.keys():
        d[val] += 1
    else:
        d[val] = 1

keyNum = len(d.keys())
num = len(a)
keys = list(d.keys())

#条件１
if len(d.keys()) == 1 and 0 in d.keys():
    print ("Yes")
elif len(a) % 3 != 0:
    print ("No")
elif keyNum == 2:
    keys.sort()
    if keys[0] != 0:
        print ("No")
    elif d[0] != num//3:
        print ("No")
    else:
        print ("Yes")
#        keys1 = format(keys[1],'b')
#        isAll1 = True
#        for x in keys1:
#            if x != '1':
#                isAll1 = False
#                break
#        if isAll1:
#            print ("Yes")
#        else:
#            print ("No")

elif keyNum != 3:
    print ("No")

else:
    key1 = format(keys[0],'040b')
    key2 = format(keys[1],'040b')
    key3 = format(keys[2],'040b')
    isA = True
    for k1,k2,k3 in zip(key1,key2,key3):
        kk1 = int(k1)
        kk2 = int(k2)
        kk3 = int(k3)
        goukei = kk1 + kk2 + kk3
        if not (goukei == 0 or goukei == 2):
            isA = False
            break
    
    if isA:
        print ("Yes")
    else:
        print ("No")
