#include <bits/stdc++.h>
using namespace std;
const int N = 200005;
vector<int> e[N];
int n, o, cnt[N], in[N], out[N];
char s[5];
string ans;
void dfs(int x) {
  while (cnt[x] < e[x].size()) dfs(e[x][cnt[x]++]);
  ans += (char)(x % 256);
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%s", s);
    int u = s[0] * 256 + s[1], v = s[1] * 256 + s[2];
    e[u].push_back(v);
    ++out[u];
    ++in[v];
    o = u;
  }
  int sum1 = 0, sum2 = 0, p = o;
  for (int i = 0; i < N; i++) {
    int tmp = in[i] - out[i];
    if (tmp == -1)
      sum1++, p = i;
    else if (tmp == 1)
      sum2++;
    else if (tmp != 0) {
      puts("NO");
      return 0;
    }
  }
  if (sum1 > 1 || sum2 > 1 || sum1 + sum2 == 1) {
    puts("NO");
    return 0;
  }
  dfs(p);
  ans += (char)(p / 256);
  if (ans.size() != n + 2)
    puts("NO");
  else {
    puts("YES");
    reverse(ans.begin(), ans.end());
    cout << ans;
  }
  return 0;
}
