using System;
using System.Collections.Generic;//list用
using System.Collections;
using System.Linq;
class Program
{
    static List<int> s = new List<int>();
    static List<int> t = new List<int>();
    static decimal result;
static int N;
    static void Main()
    {
Read1();
Read2();
   //全ケタが３つ周期になるはず    

      t.Add(s[0]);
      int[] count=new int[3];
for(int i=1;i<N;i++){int a=t.Count;for(int j=0;j<a;j++){if(t[j]==s[i]){count[j]++;break;}if(j==a-1){t.Add(s[i]);if(a>2){break;}}}}
      //全0は例外的にＯＫ。
for(int i=0;i<N;i++){if(s[i]!=0){break;}if(i==N-1){Console.WriteLine("Yes");return;}}
if(t.Count==2 && (t[0]==0 || t[1]==0) && (count[0]==count[1])){Console.WriteLine("Yes");return;}
      //上記二つ以外なら３つである必要がある
      if(t.Count!=3){Console.WriteLine("No");return;}
//各ケタの周期が011,101,110,000のどれか(つまり合計０)になればＯＫ。
      if((t[0]^t[1]^t[2])==0 && count[0]==count[1] && count[1]==count[2]){Console.WriteLine("Yes");return;}else{Console.WriteLine("No");return;}


    }

    static void Read1()
    {
        string tmp = Console.ReadLine();
        N = int.Parse(tmp);
    }

    static void Read2()
    {
        string[] tmp=Console.ReadLine().Split(' ');
      for(int i=0;i<N;i++)
      {
        s.Add(int.Parse(tmp[i]));
      }
    }
}
