#include<stdio.h>
#include<string.h>
#define m 1147849
#define L 14
char dic[m][L];
int insert_str(char[]);
int find_str(char[]);
int h1(int);
int h2(int);
long long getkey(char[]);
int to_num(char);
int insert_str(char data1[]){
    long long i,key=getkey(data1),H;
    for(i=0;;i++){
        H=(h1(key)+i*h2(key))%m;
        if(strcmp(dic[H],data1)==0){
            return 1;
        }else if(strlen(dic[H])==0){
            strcpy(dic[H],data1);
            return 0;
        }
    }
    return 0;
}
int find_str(char data1[]){
    int i;
    long long key=getkey(data1),H;
    for(i=0;;i++){
        H=(h1(key)+i*h2(key))%m;
        if(strcmp(dic[H],data1)==0){
            return 1;
        }else if(strlen(dic[H])==0){
            return 0;
        }
    }
    return 0;
}
int h1(int num2){
    return num2%m;
}
int h2(int num3){
    return 1+num3%(m-1);
}
long long getkey(char str[]){
    long long sum=0;int j,p=1;
    for(j=0;j<strlen(str);j++){
        sum+=p*(to_num(str[j]));
        p*=3;
    }
    return sum;
}
int to_num(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;
    }
    return 0;
}
int main(void){
    char order[9],data[L];
    int k,n;
    scanf("%d",&n);
    for(k=0;k<m;k++){
        dic[k][0]='\0';
    }
    for(k=0;k<n;k++){
        scanf("%s %s",order,data);
        if(order[0]=='i'){
            insert_str(data);
        }else{
            if(find_str(data)){
                printf("yes\n");
            }else{
                printf("no\n");
            }
        }
    }
    return 0;
}
