type Result = ([String], [Bool])

dictionary :: Result -> String -> Result
dictionary (items, found) input
  | cmd == "insert" = (insert target items, found)
  | cmd == "find"   = (items, (find target items) : found)
  where inputs = words input
        cmd    = inputs !! 0
        target = inputs !! 1

insert :: String -> [String] -> [String]
insert x [] = [x]
insert x (y:ys)
  | x `compare` y == GT = y : (insert x ys)
  | otherwise           = x:y:ys

find :: String -> [String] -> Bool
find x [] = False
find x (y:ys)
  | x == y    = True
  | otherwise = find x ys

main = do
  _ <- getLine
  inputs <- fmap lines getContents
  let result = foldl dictionary ([], []) inputs
  mapM_ putStrLn (map yesno $ reverse $ snd result)

yesno :: Bool -> String
yesno True = "yes"
yesno False = "no"