using System;
using System.Linq;

class Program {
    static void Main(string[] args) {
            // 並ぶパターン
            // 1. 0, 0, 0, 0, 0, 0,...
            // 2. a, 0, a, a, 0, a,...
            // 3. a, b, c, a, b, c,...
            // が満たせるかを判定


            // データ数
            var n = int.Parse(Console.ReadLine());
            // 数字
            var number = Console.ReadLine().Split(' ').Select(s => int.Parse(s)).ToList();

            // パターン1
            if (number.Min() == number.Max() && number.Max() ==0) {
                Console.WriteLine("Yes");
                return;
            }

            // パターン2
            var distinctNumber = number.Distinct().ToList();
            if(distinctNumber.Count() == 2 && n % 3 == 0) {
                if (number.Count(i => i == distinctNumber.Max()) == n/3 && number.Count(i => i == 0) == n / 3 * 2) {
                    Console.WriteLine("Yes");
                    return;
                }
            }

            // パターン3
            if (distinctNumber.Count() == 3 && n % 3 == 0) {
                int a = distinctNumber[0];
                int b = distinctNumber[1];
                int c = distinctNumber[2];
                var xor = a ^ b;
                if (number.Count(i => i == a) == n / 3 && number.Count(i => i == b) == n / 3 && number.Count(i => i == c) == n / 3 && c == xor) {
                    Console.WriteLine("Yes");
                    return;
                }
            }

            Console.WriteLine("No");
    }
}