#include using namespace std; #define rep(i,n) for (int (i)=(0);(i)<(int)(n);++(i)) using ll = long long; using P = pair; #include #include #include using namespace __gnu_pbds; using namespace std; template void vin(vector& v, int n) { v.resize(n); for (int i = 0; i < n; ++i) { cin >> v[i]; } } template using gtree = tree,rb_tree_tag,tree_order_statistics_node_update>; int main() { gtree> g; int Q, K; cin >> Q >> K; rep(i, Q) { int a; cin >> a; if (a == 1) { int b; cin >> b; g.insert(make_pair(b, i)); } else { if ((int)g.size() < K) { cout << -1 << endl; continue; } auto itr = g.find_by_order(K-1); cout << (*itr).first << endl; g.erase(itr); } } return 0; }