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 Ruby (judge verdict: Time Limit Exceeded)

class Dic
  def initialize
    @aword = [" "]
    @cword = [" "]
    @gword = [" "]
    @tword = [" "]
  end
  
  def insert(str)
    case str.split(//)[0]
    when "A"
      @aword << str
    when "C"
      @cword << str
    when "G"
      @gword << str
    when "T"
      @tword << str
    end
  end
  
  def find(str)
    case str.split(//)[0]
    when "A"
      @aword.sort!
      words = @aword
    when "C"
      @cword.sort!
      words = @cword
    when "G"
      @gword.sort!
      words = @gword
    when "T"
      @tword.sort!
      words = @tword
    end
    if include?(words, str)
      puts 'yes'
    else
      puts 'no'
    end
  end
  
  def include?(arr, n)
    if arr.length == 1
      return arr[0] == n
    else
      if arr[arr.length / 2] <= n
        return include?(arr[arr.length / 2..arr.length - 1], n)
      else
        return include?(arr[0...arr.length / 2], n)
      end
    end
  end
end
dic = Dic.new
gets.to_i.times do
  dic.send(*gets.split(" "))
end