#include <stdio.h>
#include <string.h>
#define Long 1000000
#define L 14

char hi[Long][L];
int change (char p);
long long getkey (char str[]);
long long m1(long long key);
long long m2(long long key);
int find (char str[]);
int insert(char str[]);

int main()
{
  int i,n;
  char str[L],nara[9];
  for(i=0;i<Long;i++)
    hi[i][0]='\0';
  scanf("%d",&n);
  for(i=0;i<n;i++){
    scanf("%s %s",nara,str);

    if(nara[0]=='i'){
      insert(str);
    }else{
      if ( find(str) ){
        printf("yes\n");
      }else{
        printf("no\n");
      }
    }
  }

  return 0;
}
int change (char p){   /*文字から数値*/
  if (p=='A')
    return 1;
  else if
    (p=='C')
    return 2;
  else if
    (p=='G')
    return 3;
  else if
    (p=='T')
    return 4;
  else return 0;
}

long long getkey (char str[]){
  long long i,q=1,gou=0;
  for(i=0;i<strlen(str);i++){
    gou += q*(change(str[i]));
    q *=5;
  }
   
  return gou;
}

long long m1(long long key){
  return key%Long;
}

long long m2(long long key){
  return 1 + (key%(Long-1));
}
  

int find (char str[]){
  long long i,m,cord;

  cord=getkey(str);//文字列から数値
  for(i=0;;i++){
    m=(m1(cord) +i*m2(cord))%Long;
    if(strcmp(hi[m],str)==0)
      return 1;
    else if (strlen(hi[m])==0)
      return 0;
  }
    
  return 0;
}

int insert(char str[]){
  long long key=getkey(str);
  long long i=1,hash=m1(key);

  while(1){
    if(hi[hash][0]=='\0'){
      strcpy(hi[hash],str);
      return hash;
    }
    if (strcmp(hi[hash], str) == 0)
      return hash;
    else{
      hash=m1(key)+i*m2(key);
      i++;
      hash%=Long;
    }
  }
}

