#include <bits/stdc++.h>

using namespace std;
struct trie{
    bool c_word=0;
trie *symbol[26];
trie(){
for(int i=0;i<26;i++){
    symbol[i]=nullptr;
}

}

};
trie *root=new trie();
int i=0;
int max_=0;
string s;

void prefix_tree(string c){

trie *cur;

cur=root;
for(int j=0;j<c.size();j++){

    if(cur->symbol[c[j]-'a']==nullptr){

        cur->symbol[c[j]-'a']=new trie();
    }

    cur=cur->symbol[c[j]-'a'];

}


cur->c_word=1;

}
void cenz(){
   trie *cur;
   int p=i;
   cur=root;

while(true){
    if(cur->symbol[s[p]-'a']==nullptr and cur->c_word==1){

       s.erase(s.begin()+i,s.begin()+p);
       i=max(i-max_-1,0);
       return;
    }
    if((cur->symbol[s[p]-'a']==nullptr or p==s.size()) and cur->c_word==0 ){

        return;
    }
    cur=cur->symbol[s[p]-'a'];

    p++;

}



}


int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
string c;
int n;

cin>>s;
cin>>n;
while(n>0){
    cin>>c;
    max_=(max_,c.size());
    prefix_tree(c);

    n--;
}
while(true){
    n=i;
    cenz();
    if(n==i){

    }if(i==s.size()){

    break;
    }
    i++;
}
cout<<s;
return 0;
}