#include<bits/stdc++.h>
using namespace std;
struct nood{
string b;
}q[1000];
string a;
int n=1,fa[1000],ans;
int find(int a){
if(a!=fa[a]) fa[a]=find(fa[a]);
return fa[a];
}
int main(){
for(int i=1;i<=1000;i++){
fa[i]=i;
}
while(1){
cin>>a;
if(a=="$"){
break;
}
if(a=="#"){
cin>>q[n].b;
n++;
fa[n]=n;
ans=n;
}
if(a=="+"){
cin>>q[n].b;
n++;
fa[n]=find(ans);
}
if(a=="?"){
cin>>q[n].b;
n++;
cout<<q[n].b<<" "<<q[find(n)].b<<endl;
}
}
cout<<n<<endl;
for(int i=1;i<=n;i++){
cout<<fa[i]<<" ";
}
}
随手乱写的,能改就改吧