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<stdio.h>
#include<string.h>

#define M 1000003
#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;
	}
	return 0;
}

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;
}

int h1(int key) {
	return key % M;
}

int h2(int key) {
	return 1 + (key % (M - 1));
}

int getHashValue(char str[]) {
	long long hashval, i = 0;

	do {
		hashval = (h1(getKey(str)) + i * h2(getKey(str))) % M;
		i++;
	} while (H[hashval] == '\0');

	return hashval;
}

int find(char str[]) {
	return !strcmp(str, H[getHashValue(str)]);
}

void insert(char str[]) {
	strcpy(H[getHashValue(str)], str);
}

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

	for (i = 0; i < M; i++) {
		H[i][0] = '\0';
	}

	scanf("%d", &n);

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

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

	return 0;
}