#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
const int INF = 1e9;
const long long LLINF = 4e18;
void input() {}
template <typename... R>
void input(int& f, R&... r) {
  scanf("%d", &f);
  input(r...);
}
template <typename... R>
void input(double& f, R&... r) {
  scanf("%lf", &f);
  input(r...);
}
template <typename... R>
void input(long long& f, R&... r) {
  scanf("%lld", &f);
  input(r...);
}
template <typename... R>
void input(char& f, R&... r) {
  scanf("%c", &f);
  input(r...);
}
template <typename T, typename... R>
void input(vector<T>& f, R&... r) {
  for (int i = 0; i < (int)(f.size()); i++) input(f[i]);
  input(r...);
}
int main() {
  int N;
  input(N);
  vector<int> a(N);
  if (N % 3 == 0) {
    input(a);
    for (int i = (int)(3); i < int(N); i++) {
      if (a[i] != a[i - 3]) {
        puts("No");
        return 0;
      }
    }
  } else {
    input(a);
    for (int i = (int)(1); i < int(N); i++) {
      if (a[i] != a[i - 1]) {
        puts("No");
        return 0;
      }
    }
  }
  puts("Yes");
  getchar();
  getchar();
}
