#include <stdio.h>
#include <string.h>

#define M 1000000
#define L 14

int insert(char *);
int find(char *);
int h2(int);
int h1(int);
long long getKey(char *);
int getChar(char);

char H[M][L]; 

int main(){
  static int cnt=0;
  int i, n, h;
  char str[L], com[9],*result1[M];
  for ( i = 0; i < M; i++ ) H[i][0] = '\0';
    
  scanf("%d", &n);
    
  for ( i = 0; i < n; i++ ){
    scanf("%s %s", com, str);
	
    if ( com[0] == 'i' ){
      insert(str);
    }
    else {
      if (find(str)){
	cnt++;
	result1[cnt-1]="yes";}
      else {
        cnt++;
	result1[cnt-1]="no";
      }
    }
  }
  for(i=0;i<cnt;i++){
    printf("%s\n",result1[i]);
  }
  return 0;
}


int getChar(char ch){
  if ( ch == 'A') return 1;
  else if ( ch == 'C') return 2;
  else if ( ch == 'G') return 3;
  else if ( ch == 'T') return 4;
}


long long getKey(char str[]){
  long long sum = 0, p = 1, i;
  for ( i = 0; i < strlen(str); i++ ){
    sum += p*(getChar(str[i]));
    p *= 5;
  }
  return sum;
}

int h1(int key){ return key%M; }
int h2(int key){ return 1+(key%(M-1)); }

int find(char str[]){
  long long key,j,h;
  key = getKey(str);
  for(j = 0;; j++){
    h = (h1(key) + j * h2(key)) % M;
    if(strcmp(H[h],str) == 0) return 1;
    else if(strlen(H[h]) == 0) return 0;
  }

}

int insert(char str[]){
  long long key,j,k;
  key = getKey(str);
  for(j = 0;; j++){
    k = (h1(key) + j * h2(key)) % M;
    if(strcmp(H[k],str) == 0) return 1;
    else if( strlen(H[k]) == 0){
      strcpy(H[k],str);
      return 0;
    }
  }
}
