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

#define M 1046527
#define NIL (-1)
#define L 14

char H[M][L];

// 文字から数値に変換
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;
    }
}

// 文字列から数値へ変換してkeyを生成する
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;
}

// ハッシュ関数（1）
int hash1(int key) {
    return key % M;
}

// ハッシュ関数（2）
int hash2(int key) {
    return 1 + (key % (M - 1));
}

// findコマンド実行時
int find(char str[]) {
    long long key, i, h;
    key = getKey(str);

    for (i = 0;; i++) {
        h = (hash1(key) + i * hash2(key)) % M;
        if (strcmp(H[h], str) == 0) return 1;
        else if (strlen(H[h]) == 0) return 0;
    }
    return 0;
}

// insertコマンド実行時
int insert(char str[]) {
    long long key, i, h;
    key = getKey(str);

    for (i = 0; ; i++) {
        h = (hash1(key) + i * hash2(key)) % M;
        if (strcmp(H[h], str) == 0) return 1;
        else if (strlen(H[h]) == 0){
            strcpy(H[h], str);
            return 0;
        }
    }
    return 0;
}

int main(void)
{
    int i, n, h, j = 0;
    char str[L], com[9];
    for (i = 0; i < M; i++) H[i][0] = '\0';

    scanf("%d", &n);
    int findReply[n];
    for (i = 0; i < n; i++) findReply[i] = -1;

    for (i = 0; i < n; i++) {
        scanf("%s %s", com, str);

        if (com[0] == 'i') {
            insert(str);
        } else {
            if (find(str)) {
                findReply[j++] = 1;
            } else {
                findReply[j++] = 0;
            }
        }
    }

    i = 0;
    while (findReply[i] != -1) {
        
        if (findReply[i] == 1) {
            printf("yes\n");
        } else if (findReply[i] == 0) {
            printf("no\n");
        }
        i++;
    }

    return 0;
}
