#include <bits/stdc++.h>
using namespace std;
string f;
map<string,string> fa;//fa[i]:i的祖先/代表是谁
string find(string x){
if(fa[x]==x)return x;
//cout << fa[x] << '\n';
fa[x]=find(fa[x]);
return fa[x];
}
void cr(string i,string j){
string i_fa=find(i),j_fa=find(j);
fa[i_fa]=j_fa;
}
int main(){
char c;
string s;
while(c=getchar(),c!='$'){
getline(cin,s,'\n');
if(c=='#'){
f=s;
if(fa.count(s));
else fa[s]=s;
}else if(c=='+'){
if(fa.count(s))cr(s,f);
else fa[s]=f;
}else if(c=='?'){
cout << s << ' ' << find(s) << '\n';
}
}
return 0;
}
希望各位大佬帮忙看看