#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int p[N],n,m,k,q;
int find(int x){
if(p[x]!=x) return p[x]=find(p[x]);
return p[x];
}
int main(){
int cnt=1;
map<string,int> mp;
map<int,string> mpp;
string s,fa;
for(int i=1;i<=50000;i++) p[i]=i;
cin>>s;
while(s!="$"){
string ss=s.substr(1);
if(mp.count(ss)==0) mp[ss]=cnt++;
mpp[cnt-1]=ss;
int t=mp[ss];
if(s[0]=='#'){
fa=ss;
}
else if(s[0]=='+'){
p[t]=mp[fa];
}
else if(s[0]=='?'){
int tt=find(t);
cout<<ss<<' '<<mpp[tt]<<'\n';
}
cin>>s;
}
return 0;
}