#include using namespace std; #define rep(i, n) for(int i = 0; i < (int)(n); i++) int main(){ vector> v(1<<17, vector (17)); auto ins = [&](int a){ rep(i, 17){ if(i == 0)v[a][0]++; else if(a%2 == 0)v[a/=2][i]++; else a /= 2; } }; auto era = [&](int a){ rep(i, 17){ if(i == 0)v[a][0]--; else if(a%2 == 0)v[a/=2][i]--; else a /= 2; } }; auto fin = [&](int a){ int at = 0; for(int i = 16; i >= 1; i--){ if(v[at][i] < a){ a -= v[at][i]; at = at * 2 + 1; } else at *= 2; } return at; }; int N, K, Q, A, t, n, m; cin >> N >> K >> Q; rep(i, N){ cin >> A; ins(A); } rep(i, Q){ cin >> t; switch(t){ case 1: cin >> n; ins(n); break; case 2: cin >> n; m = fin(K); era(m); ins(m+n); break; case 3: cout << fin(K) << endl; } } }