/* In the name of Allah */
// Welcome to the Soldier Side!
// Where there's no one here, but me...
#include<bits/stdc++.h>
using namespace std;
const int N = 4e5 + 5;
vector<int> result;
vector<int> adj[N];
int n, m, d[N];
string t[N];
int get_id(string s) {
static map<string, int> mp;
return !mp.count(s)? t[m] = s, mp[s] = m++: mp[s];
}
void dfs(int u) {
while (!adj[u].empty()) {
int v = adj[u].back();
adj[u].pop_back();
dfs(v);
}
result.push_back(u);
}
void read_input() {
cin >> n;
for (int i = 0; i < n; i++) {
string s;
cin >> s;
int u = get_id(s.substr(0, 2));
int v = get_id(s.substr(1));
adj[u].push_back(v);
d[u]++, d[v]--;
}
}
void solve() {
int cnt = 0;
for (int u = 0; u < n; u++)
if (d[u])
cnt++;
if (cnt > 2) {
cout << "NO";
exit(0);
}
for (int u = 0; u < m; u++)
if (d[u] > 0) {
if (d[u] > 1) {
cout << "NO";
exit(0);
}
dfs(u);
return;
}
dfs(0);
}
void write_output() {
if (result.size() < n + 1) {
cout << "NO";
return;
}
reverse(result.begin(), result.end());
cout << "YES\n" << t[result[0]][0];
for (int p: result)
cout << t[p][1];
}
int main() {
ios:: sync_with_stdio(0), cin.tie(0), cout.tie(0);
read_input(), solve(), write_output();
return 0;
}
147. Insertion Sort List | 310. Minimum Height Trees |
2110. Number of Smooth Descent Periods of a Stock | 2109. Adding Spaces to a String |
2108. Find First Palindromic String in the Array | 394. Decode String |
902. Numbers At Most N Given Digit Set | 221. Maximal Square |
1200. Minimum Absolute Difference | 1619B - Squares and Cubes |
1619A - Square String | 1629B - GCD Arrays |
1629A - Download More RAM | 1629C - Meximum Array |
1629D - Peculiar Movie Preferences | 1629E - Grid Xor |
1629F1 - Game on Sum (Easy Version) | 2148. Count Elements With Strictly Smaller and Greater Elements |
2149. Rearrange Array Elements by Sign | 2150. Find All Lonely Numbers in the Array |
2151. Maximum Good People Based on Statements | 2144. Minimum Cost of Buying Candies With Discount |
Non empty subsets | 1630A - And Matching |
1630B - Range and Partition | 1630C - Paint the Middle |
1630D - Flipping Range | 1328A - Divisibility Problem |
339A - Helpful Maths | 4A - Watermelon |