/*0428 ??????????????????3?§???°???return????????????????????§???????????????????????£??????????????????
 * 0427???????????¨??????????????????????´???????????????????????????????
 * 
 * Created by SharpDevelop.
 * User: yog-sothoth
 * Date: 2017/04/23
 * Time: 17:25
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */

using System.Collections.Generic;
using System;
using System.IO;

namespace Dictionary
{
	public class Nord
	{
		
		public	string value;
		public Nord a;
		public Nord c;
		public Nord g;
		public Nord t;
	
	
		public Nord()
		{
			value = "z";
			a = null;
			c = null;			
			g = null;
			t = null;
		}
	
		
		
	}
	public class DictionaryList
	{
		
		
		public static void Main(string[] args)
		{
			
			Nord root = new Nord();//??????????????????
			NordSearch ns = new NordSearch();
			//List<string> dict=new List<string>();
			int num = int.Parse(Console.ReadLine());// the number of instructions
			//repeat readline
		  var sw = new StreamWriter(Console.OpenStandardOutput())
		{AutoFlush = false};
        Console.SetOut(sw);
			for (int i = 0; i < num; i++) {
				string iands = Console.ReadLine();//instruction and string
				string[] instAndStr = iands.Split();
				
				//Add list instAndStr[1]
				
				
		
				if (instAndStr[0] == "insert") {//??????????????\???
					ns.insert(instAndStr[1], root);
				} else { //?????????find
					Console.WriteLine(ns.search(instAndStr[1], root));
					
				}
				
			}
                	Console.Out.Flush();
		}
		
	}
	public class NordSearch
	{
		public void insert(string x, Nord root)
		{//??????????????????????????????????????????????????????????????????????????????????????????
			Nord now = root;
			Nord prt = new Nord();//??????????????????
			for (int i = 0; i < x.Length; i++) {	
				//??????????????????????????????????????¢??????????§?????????¢??????????¬???¢??????
				//??????makenode????????????????£???¶?????????????????¨???????????????????????¢?????????for????????????????????¨???value?????????????????????????????????
				//????????????????????????????????¨AAA???????????¨A???AA???????????¨????????????????????????value??§?§£?±????
				
				
				prt = now;//??????????????????
				switch (x[i]) {
					case 'A':
						
						now = now.a;
						break;
					case 'C':
						
						now = now.c;
						
						break;
					case 'G':
						
						now = now.g;
						
						break;
					case 'T':
						
						now = now.t;
						
						break;			
				
				}
				if (now == null) {
					makeNord(i, prt, x);
					return;//?????????????????£????????????????????????????????????????????????
				
				}
				
			}now.value=x;
			return;
		
		}
		
		public void makeNord(int index, Nord n, string x)
		{
			for (int k = index; k < x.Length; k++) {
				Nord y = new Nord();
				switch (x[k]) {
					case 'A':
						n.a = y;
						n = n.a;
						break;
					case 'C':
				
						n.c = y;
						n = n.c;
						break;
					case 'G':
			
						n.g = y;
						n = n.g;
						break;
					case 'T':
					
						n.t = y;
						n = n.t;
						break;			
				
				}	
			
			}//for?????????????????¨????????§value??????????????????
			n.value = x;
			return;
		
		}
			
		public string search(string x, Nord root)
		{
			Nord now = root;
			for (int j = 0; j < x.Length; j++) {
				
				switch (x[j]) {
					case 'A':
						if (now.a != null) {
							now = now.a;
						} else {
							return "no";
						}
						break;

					case 'C':
						if (now.c != null) {
						
							now = now.c;
						} else {
							return "no";
						}
						break;
						
					case 'G':
						if (now.g != null) {
							now = now.g;
						} else {
							return "no";
						}
						
						break;
					case 'T':
						if (now.t != null) {
							
						
							now = now.t;
						} else {
							return "no";
						}
						
						break;			
				
				}
				
			
			
				
			}//for?????????????????¨????????§value????????§?????????
			if (now.value == x) {
				return "yes";
			}
			return "no";
			
		
		}
	}

}

Measured memory_bytes: 56192