#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
****************************************************************/