#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define req(i,n) for(int i = 1;i <= n; i++) #define rrep(i,n) for(int i = n-1;i >= 0;i--) #define ALL(obj) begin(obj), end(obj) #define RALL(a) rbegin(a),rend(a) typedef long long int ll; typedef long double ld; template void Fill(A(&array)[N], const T& val) { std::fill((T*)array, (T*)(array + N), val); } const int inf = 2e9; const int MOD = 1e9 + 7; template inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; } template inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; } int main(void) { int q, k, t; ll v; cin >> q >> k; priority_queue < ll, vector, greater> pq; priority_queue pp; rep(i, q) { cin >> t; if (t == 1) { cin >> v; if (pp.size() < k) pp.push(v); else { ll kth = pp.top(); if (v < kth) { pp.pop(); pp.push(v); pq.push(kth); } else pq.push(v); } } else { if (pp.size() < k)cout << -1 << endl; else { ll kth = pp.top(); cout << kth << endl; pp.pop(); if (!pq.empty()) { kth = pq.top(); pq.pop(); pp.push(kth); } } } } }