#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int N, M; vector A, B; vector index(200 - 1); vector n(200, -1); bool func(int num) { string ans = A[num]; for (int i = 1; i < N; i++) { char last = ans[ans.size() - 1]; if (n[last] == -1) { return false; } ans += A[index[n[last]]]; } cout << ans << endl; return true; } int main() { cin >> N; A = vector(N); for (size_t i = 0; i < N; i++) { cin >> A[i]; } cin >> M; B = vector(M); for (size_t i = 0; i < M; i++) { cin >> B[i]; } for (int i = 0; i < N; i++) { index[A[i][0]] = i; } for (string s : B) { for (int i = 0; i < s.size() - 1; i++) { n[s[i]] = s[i + 1]; } } bool flag = false; for (int i = 0; i < N; i++) { if (func(i)) { flag = true; break; } } if (!flag) { cout << "-1" << endl; } }