#include <stdio.h>
#include <string.h>
#define SIZE 1046527


struct hash{
	char *dictonary[SIZE];
}

struct hash map;

int h1(int k){
	return k%SIZE;
}
int h2(int k){
	return 1+(k%(SIZE-1));
}

int insert2(char *str,int i){
	int p=(h1(k)+i*h2(k))%SIZE;
	if(strlen(map.dictonary[p])==0){
		map.dictonary[p]=str;
		return 0;
	}
	else if(strcmp(str,map.dictonary[p])){
		return 1;
	}else{
		insert2(str,i+1);
	}
}

int getkey(char *str){
	int len=strlen(str);
	int i;
	int key=0:
	for(i=0;i<len;i++){
		char c=str[i];
		key*=5;
		if(c=='A'){
			key+=1;
		}else if(c=='T'){
			key+=2;
		}else if(c=='G'){
			key+=3;
		}else if(c=='C'){
			key+=4;
		}
	}
	return key;
}

void insert(char *str){
	int key=getkey(str);
	insert2(str,0);
}


int find(char *str){
	int key=getkey(str);
	int i=0;
	while(1){
		int p=(h1(k)+i*h2(k))%SIZE;
		if(strcmp(str,map.dictonary[p])){
			printf("yes\n");
			return 0;
		}else{
			if(i==SIZE){
				printf("no\n");
				return 1;		
			}
			i++;
		}
	}
}

int main(){
	unsigned int n;
	char **str1,**str2;
	int i;
	for(i=0;i<n;i++){
		scanf("%s",str1[i]);
		scanf("%s",str2[i]);
		if(strcmp("insert",str1)){
			insert(str2);
		}else{
			find(str2);
		}
	}
	return 0;
}