#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
string s[maxn],t;
bool book[maxn];
int ch[maxn][27],l[maxn],top=0,f[maxn],nxt[maxn],sz=1;
char ans[maxn];
void build(string s){
int len=s.size(),u=1;
for(int i=0;i<len;++i){
int to=s[i]-'a'+1;
if(!ch[u][to])ch[u][to]=++sz;
u=ch[u][to];
}
book[u]=1;l[u]=len;
}
queue<int>Q;
void bfs(){
Q.push(1);
while(!Q.empty()){
int u=Q.front();Q.pop();
for(int i=1;i<=26;++i){
if(!ch[u][i])ch[u][i]=ch[nxt[u]][i];
else{
nxt[ch[u][i]]=ch[nxt[u]][i];
Q.push(ch[u][i]);
}
}
}
}
int main(){
cin>>t;
int n;
cin>>n;
for(int i=1;i<=26;++i)ch[0][i]=1;
for(int i=1;i<=n;++i){
cin>>s[i];
build(s[i]);
}
bfs();
int len=t.size(),u=1;
for(int i=0;i<len;++i){
ans[++top]=t[i];
int to=t[i]-'a'+1;
u=ch[u][to];
if(book[u]){
top-=l[u];
u=f[top];
}
else {
f[top]=u;
}
}
ans[top+1]='\0';
cout<<(ans+1)<<endl;
return 0;
}