#include<map>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
map<string, int> mp;
char c;string s;
int n, flag = 1, fa[50005];
string id[50005];
int find(int x) {
if (x == fa[x])
return x;
else return fa[x] = find(fa[x]);
}
int main() {
// freopen("tx.in", "r", stdin);
// freopen("tx.out", "w", stdout);
ios::sync_with_stdio(0);
cin >> c;
for(int i = 1; i <= 50000; ++i)
fa[i] = i;
for(;;) {
// c = getchar();
if (c != '#')
break;
cin >> s;getchar();
// cout << s << endl;
if (!mp[s]) {
mp[s] = ++n;
id[n] = s;
}
// mp[s] = 1;
int fas = mp[s];
// if (!fa[fas])
// fa[fas] = fas;
// }
// cout << mp["Gareth"] << endl;;
for(;;) {
// c = getchar();
cin >> c;
if (c == '?' || c == '$')
flag = 0;
if (c != '+')
break;
cin >> s;getchar();
if (!mp[s]) {
mp[s] = ++n;
id[n] = s;
}
//cout << mp["Gareth"] << endl;;
// id[n] = s;
// mp[s] = 1;
fa[mp[s]] = fas;
}
if (!flag)
break;
}
for(;;) {
// cout << c << endl;
if (c == '$')
return 0;
cin >> s;getchar();
//c = getchar();
// cout << 2 << endl;
int x = find(mp[s]);
// cout << mp[s] << endl;
cout << s << " " << id[x] << endl;
//cout << s << " " << id[x] << endl;
cin >> c;
}
return 0;
}