#include <stdio.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
        return (0);
}

/* 文字列から数値へ変換して keyを生成する */
long long getKey(char str[])
{
    long long sum = 0;
    long long p = 1;
    long long 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;
    long long i;
    long long h;

    key = getKey(str);  /* 文字列を数値に変換 */
    for (i = 0; ; i++) {
        h = (h1(key) + i * h2(key)) % M;
        if (strcmp(H[h], str) == 0)
            return (1);
        else if (strlen(H[h]) == 0)
            return (0);
    }
    return (0);
}

int insert(char str[])
{
    long long key;
    long long i;
    long long h;

    key = getKey(str);
    for (i = 0; ; i++) {
        h = (h1(key) + i * h2(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 init()
{
    int i;
    for (i = 0; i < M; i++)
        H[i][0] = '\0';
}

int main()
{
    int i, n, h;
    char str[L], com[9];

    init();
    scanf("%d", &n);

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

        if (strcmp(com, "insert") == 0) {
            insert(str);
        }
        else {
            if (find(str)) {
                puts("yes");
            }
            else {
                puts("no");
            }
        }
    }
    return (0);
}

