#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define fc freopen("in.in", "r", stdin), freopen("out.out", "w", stdout)
const int N = 2e5 + 10;
int tr[N << 5], ls[N << 5], rs[N << 5];
int tot, rt;
void ins(int& u, int l, int r, int p) {
if (!u) u = ++tot;
if (l == r) {
tr[u]++;
return;
}
int mid = l + r >> 1;
if (p <= mid)
ins(ls[u], l, mid, p);
else
ins(rs[u], mid + 1, r, p);
tr[u] = tr[ls[u]] + tr[rs[u]];
}
int quek(int u, int l, int r, int k) {
if (!u) return -1;
if (l == r) {
return l;
}
int mid = l + r >> 1;
if (k <= tr[ls[u]]) return quek(ls[u], l, mid, k);
return quek(rs[u], mid + 1, r, k - tr[ls[u]]);
}
void Luo_Saisei() {
int n, m, k;
cin >> n >> m >> k;
for (int i = 1; i <= n; i++) {
int x;
cin >> x;
ins(rt, 0, 1e9, x);
}
while (m--) {
int op;
cin >> op;
if (op == 1) {
int x;
cin >> x;
ins(rt, 0, 1e9, x);
} else {
cout << quek(rt, 0, 1e9, k) << '\n';
}
}
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
int T = 1;
// cin >> T;
while (T--) Luo_Saisei();
return 0;
}