#include #include using namespace std; using namespace atcoder; using ll = long long; using vi = vector; using vvi = vector; using vl = vector; using vvl = vector; using vs = vector; using vp = vector>; #define rep(i, s, n) for (int i = s; i < (int)(n); i++) #define sz(x) ((int)(x).size()) constexpr int INFI = 1001001001; constexpr ll INFL = (1LL << 60); int main (){ ios::sync_with_stdio(false); cin.tie(nullptr); // input ll n, k, q; cin >> n >> k >> q; priority_queue, greater> pq; rep(i, 0, n){ ll aa; cin >> aa; pq.push(aa); } rep (i, 0, k - 1){ pq.pop(); } rep (i, 0, q){ int x; cin >> x; if(x == 1){ ll y; cin >> y; pq.push(y); } else if(x == 2){ ll y; cin >> y; ll z = pq.top(); pq.pop(); pq.push(y + z); } else cout << pq.top() << endl; } return 0; }