#include <bits/stdc++.h>
using namespace std;
const int VERTICES = 62 * 62;
inline int code(char c) {
  if ('a' <= c && c <= 'z') {
    return c - 'a';
  } else if ('A' <= c && c <= 'Z') {
    return (c - 'A') + 26;
  } else {
    return (c - '0') + 52;
  }
}
inline char by_code(int c) {
  if (c < 26) {
    return 'a' + c;
  } else if (c < 52) {
    return 'A' + (c - 26);
  } else {
    return '0' + (c - 52);
  }
}
inline int num(string s) { return 62 * code(s[0]) + code(s[1]); }
inline string by_num(int num) {
  ostringstream os;
  os << by_code(num / 62) << by_code(num % 62);
  return os.str();
}
inline string s_begin(string s) { return s.substr(0, 2); }
inline string s_end(string s) { return s.substr(1, 2); }
vector<int> graph[VERTICES];
int m_size[VERTICES];
int to_count[VERTICES];
int from_count[VERTICES];
void bad() {
  cout << "NO";
  exit(0);
}
vector<int> answer;
void euler(int u) {
  for (int i = 0; i < m_size[u]; i++) {
    int v = graph[u][i];
    swap(graph[u][i], graph[u][m_size[u] - 1]);
    m_size[u]--;
    i--;
    euler(v);
  }
  answer.push_back(u);
}
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    string s;
    cin >> s;
    string b = s_begin(s), e = s_end(s);
    graph[num(b)].push_back(num(e));
    m_size[num(b)]++;
    from_count[num(b)]++;
    to_count[num(e)]++;
  }
  int begin_num = -1, end_num = -1;
  for (int i = 0; i < VERTICES; i++) {
    if (from_count[i] == to_count[i]) {
    } else if (from_count[i] == to_count[i] + 1) {
      if (begin_num != -1) {
        bad();
      } else {
        begin_num = i;
      }
    } else if (from_count[i] == to_count[i] - 1) {
      if (end_num != -1) {
        bad();
      } else {
        end_num = i;
      }
    } else {
      bad();
    }
  }
  if (begin_num != -1) {
    euler(begin_num);
  } else {
    for (int i = 0; i < VERTICES; i++) {
      if (from_count[i] > 0) {
        euler(i);
        break;
      }
    }
  }
  if (answer.size() != n + 1) {
    bad();
  }
  reverse(answer.begin(), answer.end());
  cout << "YES" << endl;
  cout << by_num(answer[0]);
  for (int i = 1; i < answer.size(); i++) {
    string t = by_num(answer[i]);
    cout << t[1];
  }
  cout << endl;
}
