Problem:
Search III

Your task is to write a program of a simple dictionary which implements the following instructions:

insert str: insert a string str in to the dictionary

find str: if the distionary contains str, then print 'yes', otherwise print 'no'

Input

In the first line n, the number of instructions is given. In the following n lines, n instructions are given in the above mentioned format.

Output

Print yes or no for each find instruction in a line.

Constraints

A string consists of 'A', 'C', 'G', or 'T'

1 ≤ length of a string ≤ 12

n ≤ 1000000

Sample Input 1

5
insert A
insert T
insert C
find G
find A

Sample Output 1

no
yes

Sample Input 2

13
insert AAA
insert AAC
insert AGA
insert AGG
insert TTT
find AAA
find CCC
find CCC
insert CCC
find CCC
insert T
find TTT
find T

Sample Output 2

yes
no
no
yes
yes
yes

Notes

Template in C

Solution in C++ (judge verdict: Wrong Answer)

#include <iostream>
#include <sstream>
#include <fstream>
#include <algorithm>
#include <string>
#include <stack>
#include <queue>
#include <vector>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <climits>
using namespace std;

int calcIndex(char* str){
    int index = 0, i = 0;
    bool flag = true;
    for(; str[i] == 'A' || str[i] == 'C' || str[i] == 'T' || str[i] == 'G'; i++){
        index += (str[i] == 'A' ? 0 : str[i] == 'C' ? 1 : str[i] == 'T' ? 2 : 3) * pow(4, i);
        if(str[i] != 'A') flag = false;
    }
    if(flag){
        index = 16777215 + i;
    }
    return index;
}

int main() {
    int n;
    scanf("%d", &n);
    
    bool* map = new bool[20000000];
    for(int i = 0; i < 20000000; i++){
        map[i] = false;
    }
    
    while(n--){
        char s[8], d[16];
        scanf("%s %s", s, d);
        
        if(s[0] == 'i'){
            map[calcIndex(d)] = true;
        }else if(map[calcIndex(d)]){
            printf("yes\n");
        }else{
            printf("no\n");
        }
    }
    
    return 0;
}