#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
#define ll long long
using namespace std;
int n;
map<string,string> mp;
map<string,int> tmp;
bool check(char c){
return c>='a' && c<='z' || c>='A' && c<='Z' || c>='0' && c<='9' || c=='_';
}
void write(string s){
if(s=="") return;
string ss="";
int sl=s.size();
for(int i=0;i<sl;i++){
if(check(s[i])){
ss+=s[i];
continue;
}
if(mp.find(ss)!=mp.end() && tmp[ss]==0){
tmp[ss]=1;
write(mp[ss]);
tmp[ss]=0;
putchar(s[i]);
}
else{
cout<<ss<<s[i];
}
ss="";
}
if(ss.size()){
if(mp.find(ss)!=mp.end() && tmp[ss]==0){
tmp[ss]=1;
write(mp[ss]);
tmp[ss]=0;
}
else{
cout<<ss;
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
string s; cin>>s;
if(s=="#define"){
string ss,tt; cin>>ss;
char c=getchar();
getline(cin,tt);
mp[ss]=tt;
puts("");
continue;
}
if(s=="#undef"){
string ss; cin>>ss;
mp[ss]=ss;
puts("");
continue;
}
tmp.clear(),write(s);
char c=getchar();
if(c=='\n'){
puts("");
continue;
}
putchar(' ');
while(c==' '){
cin>>s;
tmp.clear(),write(s);
putchar(' ');
c=getchar();
}
puts("");
}
return 0;
}