1 #include"bits/stdc++.h"
2 using namespace std;
3
4
5 int n,m;
6 int root=0; int tot;
7 const int nn = 200000;
8 int cnt[nn]; int v[nn];
9 int ch[nn][2]; int fa[nn];
10 int size[nn];
11
12 inline void push(int x)
13 {
14 size[x]=size[ch[x][0]]+size[ch[x][1]]+cnt[x];
15 return ;
16 }
17 inline void rot(int x,int d)
18 {
19 int y=fa[x]; int z=fa[y];
20 ch[y][d^1]=ch[x][d];
21 fa[ch[x][d]]=y;
22 ch[x][d]=y;
23 fa[y]=x;
24 push(y),push(x);
25 int t = ch[z][1]==y;
26 if (z)ch[z][t]=x;
27 fa[x]=z;
28 if (z)push(z);
29 return ;
30
31 }
32
33
34 inline void splay(int x,int goal=0)
35 {
36 while (fa[x]!=goal)
37 {
38 int y=fa[x]; int z=fa[y];
39 if (z==goal)
40 {
41 rot(x,(ch[y][1]==x)^1); break; // 有个^
42
43 }
44 else
45 {
46 if (ch[z][1]==y)
47 if (ch[y][1]==x)rot(y,0),rot(x,0);
48 else rot(x,1),rot(x,0);
49 else if (ch[y][0]==x)rot(y,1),rot(x,1);
50 else rot(x,0),rot(x,1);
51 }
52 }
53 if (!goal)root=x;
54 }
55
56 inline void insert(int x)
57 {
58 int now = root;
59 while (1)
60 {
61 if (v[now]==x)
62 {
63 cnt[now]++,splay(now);push(now);tot++;
64 break;
65 }
66 if (!ch[now][x>v[now]])
67 {ch[now][x>v[now]]=++tot,cnt[tot]=1,size[tot]=1,v[tot]=x;
68 fa[tot]=now;splay(tot);
69 break;}
70 now=ch[now][x>v[now]];
71 }
72 }
73
74 int find(int x)
75 { int now =root;
76 while (1)
77 {
78 if (x<=size[ch[now][0]])now=ch[now][0];
79 else if (x>size[ch[now][0]]+cnt[now])x-=size[ch[now][0]]+cnt[now],
80 now=ch[now][1];
81 else return now;
82 }
83 }
84
85 void print(int x)
86 {
87 if (!x)return ;
88 int l=ch[x][0],r=ch[x][1];
89 cout<<l<<" "<<r<<" "<<v[l]<<" "<<v[r]<<" "<<fa[x]<<" "<<v[x]<<" "<<size[x]<<endl;
90 print(l);
91 print(r);
92 }
93
94 int main()
95 {
96 cin>>n;
97
98 for (int i=1;i<=n;i++)
99 {
100 int x;scanf("%d",&x);
101 if (!root)root=++tot,cnt[tot]=1,size[tot]=1,v[tot]=x;
102 else insert(x);
103
104
105 }cin>>m;
106 while (m--)
107 {
108 char s[10];
109 cin>>s;
110 if (s[0]=='a')
111 {
112 int x;scanf("%d",&x);insert(x);
113
114 }else printf("%d\n",v[find(tot/2+(tot&1))]);
115 }
116
117 }