#include #define rep(i,n)for(int i=0;i<(n);i++) using namespace std; vectorE[26]; int in[26]; bool used[26]; int main(){ rep(i,2){ int n;scanf("%d",&n); rep(k,n){ string s;cin>>s; rep(j,s.size()-1){ E[s[j]-'A'].push_back(s[j+1]-'A'); in[s[j+1]-'A']++; used[s[j]-'A']=true; } used[s.back()-'A']=true; } } queueque; rep(i,26){ if(used[i]&&in[i]==0)que.push(i); } string ans; while(!que.empty()){ if(que.size()>1){puts("-1");return 0;} int p=que.front();que.pop(); ans+=p+'A'; for(auto u:E[p]){ in[u]--; if(!in[u])que.push(u); } } cout<