#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <map>
#include <vector>
using namespace std;
map<string,string> m;
map<int,string> v;
int n;
bool pd(char c)
{
if((c>='A' && c<='Z') || (c>='a' && c<='z') || (c=='_') || (c>='0' && c<='9'))
return true;
else
return false;
}
int main()
{
cin>>n;
for(int i=1;i<=n;++i)
{
int j=1;
string g1,g2;char c;
for(;true;++j)
{
cin>>v[j];
cin.get(c);
if(c=='\n')break;
}
if(v[1][0]=='#')
{
if(v[1][1]='d')
{
m[v[2]]=v[3];
}
else
{
m[v[2]].clear();
}
printf("\n");
}
else
{
for(int k=1;k<j;++k)
{
if(m[v[k]].size()!=0)cout<<m[v[k]]<<" ";
else
{
string ss;bool b=false;int s1=0;
while(s1<v[k].size())
{
ss.clear();b=false;
for(;s1<v[k].size() && !b;++s1)
{
if(pd(v[k][s1]))ss[s1]=v[k][s1];
else
{
if(m[ss].size()!=0)cout<<m[ss]<<v[k][s1];
else cout<<ss<<v[k][s1];
b=true;
}
}
if(!b)cout<<v[k]<<" ";
}
}
}
}
}
return 0;
}