#include <bits/stdc++.h>
using namespace std;
const int M = 55;
string A[M];
map<string, int> str;
int dp[M][M][M][M];
bool match(string a, string b) { return (a[0] == b[0] || a[1] == b[1]); }
int call(int i, int xi, int xi_1, int xi_2) {
  if (i == 0) return true;
  if (dp[i][xi][xi_1][xi_2] != -1) return dp[i][xi][xi_1][xi_2];
  int a = false, b = false;
  if (i - 1 >= 0 && match(A[xi], A[xi_1]))
    a = call(i - 1, xi, xi_2, i - 3 >= 0 ? str[A[i - 3]] : M - 1);
  if (i - 3 >= 0 && match(A[xi], A[i - 3])) b = call(i - 1, xi_1, xi_2, xi);
  return dp[i][xi][xi_1][xi_2] = a | b;
}
int main() {
  int n, i, j, k;
  memset((dp), (-1), sizeof(dp));
  cin >> n;
  for (i = 0; i < n; i++) {
    cin >> A[i];
    str[A[i]] = i;
  }
  call(n - 1, n - 1, n - 2 >= 0 ? n - 2 : M - 1, n - 3 >= 0 ? n - 3 : M - 1)
      ? printf("YES\n")
      : printf("NO\n");
  return 0;
}
