#include<bits/stdc++.h> using namespace std; int main(){ map<string,string> m; map<string,string>::iterator i; string s1,s2; bool t=0; while(1==1){ cin>>s1; if(s1=="$"){ exit(0); }else if(s1[0]=='#'){ s1.erase(s1.begin()); m[s1]=s1; s2=s1; }else if(s1[0]=='+'){ s1.erase(s1.begin()); m[s1]=s2; }else if(s1[0]=='?'){ s1.erase(s1.begin()); for(i=m.begin();i!=m.end();i++){ if(i->second==s1){ cout<<i->first<<endl; t=1; } } if(t==0){ cout<<"no data"<<endl; } } } return 0; } /************************************************************** Problem: 1509 User: admin Language: C++ Result: Accepted Time:11 ms Memory:2084 kb ****************************************************************/