#include #include #include #include #include #include #include #include #include #include using namespace std; template > using MaxHeap = priority_queue, Compare>; template > using MinHeap = priority_queue, Compare>; using llong = long long; MaxHeap find_Kth; MinHeap others; llong Q, K; llong com, v; int main() { cin >> Q >> K; while(Q--) { cin >> com; if (com == 1) { cin >> v; find_Kth.push(v); if (find_Kth.size() > K) { others.push(find_Kth.top()); find_Kth.pop(); } } else if (com == 2) { if (find_Kth.size() >= K) { printf("%lld\n", find_Kth.top()); find_Kth.pop(); if (!others.empty()) { find_Kth.push(others.top()); others.pop(); } } else { printf("%lld\n", -1ll); } } } return 0; }