#include <bits/stdc++.h> using namespace std; int n; int t; string str; vector <string> a; vector <int> nxt; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n; a.resize(n); nxt.resize(n); for(int i=0;i<n;i++) { cin >> a[i]; reverse(a[i].begin(),a[i].end()); nxt[i]=i+1; } cin >> str; reverse(str.begin(),str.end()); string ans; while(true){ bool flag=false; for(int i=0;i<n;) { while(a[i].size() && a[i].back()!=str.back()) { ans+=a[i].back(); a[i].pop_back(); } if(a[i].size()) { flag=true; } while(nxt[i]<n && a[nxt[i]].size()==0) { nxt[i]=nxt[nxt[i]]; } i=nxt[i]; } if(flag) { ans+=str.back(); for(int i=0;i<n;) { if(a[i].size() && a[i].back()==str.back()) { a[i].pop_back(); } while(nxt[i]<n && a[nxt[i]].size()==0) { nxt[i]=nxt[nxt[i]]; } i=nxt[i]; } str.pop_back(); if(str.size() == 0) { cout << "NO\n"; return 0; } } else break; } cout << "YES\n" << ans; }