import java.io.*; public class RATreeTest { public static void main (String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); RATree tree = new RATree(); while (true) { String[] in = br.readLine().split(" "); switch (in[0].charAt(0)) { case 'i': { tree.insert(Integer.parseInt(in[1]), Integer.parseInt(in[2])); break; } case 'd': { if (in[0].length() == 2 && in[0].charAt(1) == 'b') { int t = Integer.parseInt(in[1]); for (int i = 0; i < t; i++) tree.delete((int)(Math.random()*tree.size())); } else tree.delete(Integer.parseInt(in[1])); break; } case 'g': { System.out.println(tree.get(Integer.parseInt(in[1]))); break; } case 'p': { if (in[0].length() == 1) { for (int i = 0; i < tree.size(); i++) System.out.print(tree.get(i) + " "); System.out.println(); } else { for (int i = 0; i < tree.size(); i++) System.out.print(tree.getSafe(i) + " "); System.out.println(); } break; } case 'h': { System.out.println(tree.maxHeight()); break; } case 'r': { int num = Integer.parseInt(in[1]); for (int i = 0; i < num; i++) tree.insert((int)(Math.random()*100), (int)(Math.random()*(tree.size()+1))); break; } case 'o': { int num = Integer.parseInt(in[1]); for (int i = 0; i < num; i++) tree.insert((int)(Math.random()*100), 0); break; } case 's': { System.out.println(tree.size()); break; } case 'q': { return; } } } } }