#include using namespace std; #define rep(i, a, b) for (int i = a; i < b; i++) using ll = long long; int main(){ int n, k, q; cin >> n >> k >> q; multiset sl, sh; rep(i, 0, n) { int a; cin >> a; int sz = sl.size(); if(sz < k) sl.insert(a); else { ll e = *prev(sl.end()); if(a < e) { sl.insert(a); sh.insert(e); sl.erase(prev(sl.end())); } else sh.insert(a); } } rep(qi, 0, q) { int t, x, y; cin >> t; if(t == 1) { cin >> x; ll e = *prev(sl.end()); if(x < e) { sl.insert(x); sh.insert(e); sl.erase(prev(sl.end())); } else sh.insert(x); } else if(t == 2) { cin >> y; ll e = *prev(sl.end()); sh.insert(e + y); sl.erase(prev(sl.end())); sl.insert(*sh.begin()); sh.erase(sh.begin()); } else cout << *prev(sl.end()) << endl; } }