import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; public class PhoneBook { private FastScanner in = new FastScanner(); // Keep list of all existing (i.e. not deleted yet) contacts. private List contacts = new ArrayList<>(); public static void main(String[] args) { new PhoneBook().processQueries(); } private Query readQuery() { String type = in.next(); int number = in.nextInt(); if (type.equals("add")) { String name = in.next(); return new Query(type, name, number); } else { return new Query(type, number); } } private void writeResponse(String response) { System.out.println(response); } private void processQuery(Query query) { switch (query.type) { case "add": contacts.get(query.number).name = query.name; break; case "del": contacts.get(query.number).name = "not found"; break; default: writeResponse(contacts.get(query.number).name); break; } } private void processQueries() { for (int i = 0; i < 10000000; i++) { contacts.add(new Contact("not found", i)); } int queryCount = in.nextInt(); for (int i = 0; i < queryCount; ++i) processQuery(readQuery()); } static class Contact { String name; int number; Contact(String name, int number) { this.name = name; this.number = number; } } static class Query { String type; String name; int number; Query(String type, String name, int number) { this.type = type; this.name = name; this.number = number; } Query(String type, int number) { this.type = type; this.number = number; } } class FastScanner { BufferedReader br; StringTokenizer st; FastScanner() { br = new BufferedReader(new InputStreamReader(System.in)); } String next() { while (st == null || !st.hasMoreTokens()) { try { st = new StringTokenizer(br.readLine()); } catch (IOException e) { e.printStackTrace(); } } return st.nextToken(); } int nextInt() { return Integer.parseInt(next()); } } }