#include using namespace std; int N, M, e, sum, deg[26]; bool ap[26], g[26][26]; string s, ret; void dfs(int pos) { ret += pos + 65; for(int i = 0; i < 26; i++) { if(g[pos][i]) dfs(i); } } int main() { cin >> N; for(int i = 0; i < N; i++) { cin >> s; sum += s.size(); for(int j = 0; j < s.size(); j++) ap[s[j] - 65] = true; for(int j = 1; j < s.size(); j++) { int a = s[j - 1] - 65, b = s[j] - 65; if(!g[a][b]) g[a][b] = true, deg[b]++, e++; } } cin >> M; for(int i = 0; i < M; i++) { cin >> s; for(int j = 1; j < s.size(); j++) { int a = s[j - 1] - 65, b = s[j] - 65; if(!g[a][b]) g[a][b] = true, deg[b]++, e++; } } if(e + 1 == sum) { for(int i = 0; i < 26; i++) { if(deg[i] == 0 && ap[i]) dfs(i); } cout << ret << endl; } else cout << -1 << endl; return 0; }