help
#include<bits/stdc++.h>
using namespace std;
struct tree{
int vis[26];
int end;
int fail;
int hh;
}ak[100005];
int cnt=0;
int st[100005],h=0;
void build(string s){
int now=0;
for(int i=0;i<s.length();i++){
if(!ak[now].vis[s[i]-'a']){
ak[now].vis[s[i]-'a']=++cnt;
}
now=ak[now].vis[s[i]-'a'];
}
ak[now].end=1;
// cout<<now<<" ";
// cout<<endl;
}
void get_fail(){
queue<int> q;
for(int i=0;i<26;i++){
if(ak[0].vis[i]){
q.push(ak[0].vis[i]);
ak[ak[0].vis[i]].fail=0;
ak[ak[0].vis[i]].hh=1;
}
}
while(!q.empty()){
int u=q.front();
q.pop();
for(int i=0;i<26;i++){
if(ak[u].vis[i]){
ak[ak[u].vis[i]].fail=ak[u].fail;
ak[ak[u].vis[i]].hh=ak[u].hh+1;
q.push(ak[u].vis[i]);
}
else
ak[u].vis[i]=ak[ak[u].fail].vis[i];
}
}
}
char to[100005];int n;
void ak_query(string s){
int now=0;
st[0]=0;h=0;
for(int i=1;i<=s.length();i++){
now=ak[now].vis[s[i-1]-'a'];
h++;
// cout<<i<<" "<<h<<" "<<now<<" "<<s[i-1]-'a'<<" "<<s[i-1]<<endl;
st[h]=now;
to[h]=s[i-1];
if(ak[now].end){
// cout<<i<<" "<<now<<" "<<ak[now].hh<<"*"<<endl;
h-=ak[now].hh;
now=st[h];
}
}
}
int main(){
string ss,s;
cin>>ss;
cin>>n;
for(int i=1;i<=n;i++){
cin>>s;
build(s);
}
get_fail();
ak_query(ss);
int i=0;
for(int i=1;i<=h;i++)
cout<<to[i];
return 0;
}