#include <bits/stdc++.h>
using namespace std;
char str[200005][4];
vector<int> e[62 * 63];
vector<int> e1[62 * 63];
int b[62 * 63];
int deg[62 * 63];
int feg[62 * 63];
int used[200005];
int f[62 * 63];
int vis[62 * 63];
char *s[200005];
int idx(char c) {
  if (isdigit(c))
    return c - '0';
  else if (c >= 'a' && c <= 'z')
    return c - 'a' + 10;
  else
    return c - 'A' + 36;
}
int num;
int n;
int find(int x) {
  if (f[x] == x)
    return x;
  else
    return f[x] = find(f[x]);
}
void dfs(int k, int x) {
  while (b[k] < e[k].size()) {
    int t = b[k];
    if (!used[e1[k][t]]) {
      used[e1[k][t]] = 1;
      b[k]++;
      dfs(e[k][t], e1[k][t]);
    }
  }
  if (x >= 0) s[num++] = str[x];
}
int main() {
  for (int i = 0; i < 62 * 63; i++) f[i] = i;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%s", str[i]);
    int x = idx(str[i][0]);
    int y = idx(str[i][1]);
    int z = idx(str[i][2]);
    e[62 * x + y].push_back(62 * y + z);
    e1[62 * x + y].push_back(i);
    deg[62 * x + y]++;
    feg[62 * y + z]++;
    vis[62 * x + y] = 1;
    vis[62 * y + z] = 1;
    int t = find(62 * x + y);
    int v = find(62 * y + z);
    if (t != v) f[t] = v;
  }
  int cnt = 0;
  for (int i = 0; i < 62 * 63; i++) {
    if (vis[i] && find(i) == i) {
      cnt++;
    }
  }
  if (cnt > 1) {
    printf("NO\n");
    return 0;
  }
  int ans1 = 10000;
  int res1 = 0;
  int res2 = 0;
  cnt = 0;
  for (int i = 0; i < 62 * 63; i++) {
    if (deg[i] == feg[i])
      continue;
    else if (deg[i] - feg[i] == 1) {
      res1++;
      ans1 = min(i, ans1);
      if (res1 > 1) break;
    } else if (deg[i] - feg[i] == -1) {
      res2++;
      if (res2 > 1) break;
    } else
      cnt = 1;
  }
  if (cnt == 1) {
    printf("NO\n");
    return 0;
  }
  if (res1 == 0 && res2 == 0) {
    int i;
    for (i = 0; i < 62 * 63; i++) {
      if (deg[i] > 0) break;
    }
    dfs(i, -1);
  } else if (res1 == 1 && res2 == 1) {
    dfs(ans1, -1);
  } else {
    printf("NO\n");
    return 0;
  }
  printf("YES\n");
  int flag = 1;
  for (int i = num - 1; i >= 0; i--) {
    if (flag)
      printf("%s", s[i]);
    else
      printf("%c", s[i][2]);
    flag = 0;
  }
  printf("\n");
}
