#include <bits/stdc++.h>
using namespace std;
string toString(int x) {
  string s = "";
  s += (char)(x % 256);
  s += (char)(x / 256);
  return s;
}
const int MAXN = 200010, VMAX = 256 * 256 + 256;
int D[2 * MAXN], N[2 * MAXN];
string A[2 * MAXN], in;
vector<int> E[2 * MAXN], res;
set<int> v;
set<pair<int, int> > vis;
void dfs(int a) {
  int x;
  while (N[a] < E[a].size()) {
    x = N[a]++;
    if (!vis.count(make_pair(a, x))) {
      vis.insert(make_pair(a, x));
      dfs(E[a][x]);
    }
  }
  res.push_back(a);
}
int main() {
  ios_base::sync_with_stdio(0);
  int n, i, a, b, c = 0;
  cin >> n;
  for (i = 0; i < n; i++) {
    cin >> in;
    a = (in.substr(0, 2)[1] * 256 + in.substr(0, 2)[0]);
    b = (in.substr(1, 2)[1] * 256 + in.substr(1, 2)[0]);
    E[a].push_back(b);
    D[a]++;
    D[b]--;
    v.insert(a);
    v.insert(b);
  }
  for (auto x : v) {
    if (D[x] > 0) {
      a = x;
      c += D[x];
    }
  }
  dfs(a);
  if (res.size() <= n || c >= 2) {
    cout << "NO\n";
    return 0;
  }
  string R = toString(res[res.size() - 1]);
  for (i = res.size() - 2; i >= 0; i--) {
    R += (res[i] / 256);
  }
  cout << "YES\n" << R << endl;
  return 0;
}
