#include<stdio.h>
int main(){
  int n;
  int a[n];
  int b[n][31] ;//2sinnsuu
  scanf("%d",&n);
  for(int i=0;i<n;i++){
    scanf("%d",&a[i]);
  }
  /*for(int i=0;i<n;i++){
    printf("%d",a[i]);
  }*/
  // to 2sinnsuu
  for(int i=0;i<n;i++){
    int x=a[i];
    for(int j=0;x>0;j++){
      b[i][j]=x%2;
      x=x/2;
    }
  }
  //n de bunnki
  if(n%6==0){
    int count=0;
    int y[31];
    for(int i=0;i<n;i++){
      for(int j=0;j<n;j++){
        for(int k=0;k<31;k++){
         y[k]=b[i][k]+b[j][k];
          int z=y[k];
          y[k]=y[k]%2;
        } 
        int w=0;
        for(int l=0;l<n;l++){  
          for(int k=0;k<31;k++){
            if(y[k]=!b[l][k]){
              w=w+1;
              break;
            }         
          }
        }
        if(w=n){
          count=count+1;
        }
      }      
    }
    if(count>n*n){
      printf("No\n");
    }
    else{
      printf("Yes\n");
    }
  }
  else if(n%3==0){
    int count=0;
    int y[31];
    for(int i=0;i<n;i++){
      for(int j=0;j<n;j++){
        for(int k=0;k<31;k++){
         y[k]=b[i][k]+b[j][k];
          int z=y[k];
          y[k]=y[k]%2;
          if(z==1){
          count=count+1;
            break;
          }
        } 
        int w=0;
        for(int l=0;l<n;l++){  
          for(int k=0;k<31;k++){
            if(y[k]=!b[l][k]){
              w=w+1;
              break;
            }         
          }
        }
        if(w=n){
          count=count+1;
        }
      }      
    }
    if(count>n*n){
      printf("No\n");
    }
    else{
      printf("Yes\n");
    }
  }
  else if(n%2==0){
    int count=0;
    int y[31];
    for(int i=0;i<n;i++){
      for(int j=0;j<n;j++){
        for(int k=0;k<31;k++){
         y[k]=b[i][k]+b[j][k];
          int z=y[k];
          y[k]=y[k]%2;
          if(z==2){
          count=count+1;
            break;
          }
        } 
        int w=0;
        for(int l=0;l<n;l++){  
          for(int k=0;k<31;k++){
            if(y[k]=!b[l][k]){
              w=w+1;
              break;
            }         
          }
        }
        if(w=n){
          count=count+1;
        }
      }      
    }
  //  printf("count=%d",count);
    if(count>n*n){
      printf("No\n");
    }
    else{
      printf("Yes\n");
    }
  }
  else {
    int count=0;
    int y[31];
    for(int i=0;i<n;i++){
      for(int j=0;j<n;j++){
        for(int k=0;k<31;k++){
         y[k]=b[i][k]+b[j][k];
          int z=y[k];
          y[k]=y[k]%2;
          if(z==1||z==2){
          count=count+1;
            break;
          }
        } 
        int w=0;
        for(int l=0;l<n;l++){  
          for(int k=0;k<31;k++){
            if(y[k]=!b[l][k]){
              w=w+1;
              break;
            }         
          }
        }
        if(w=n){
          count=count+1;
        }
      }      
    }
    if(count>n*n){
      printf("No\n");
    }
    else{
      printf("Yes\n");
    }
  }
}