#include #include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) int op(int a, int b) { return max(a, b); } int e() { return 0; } int X; bool check(int n) { return n <= X; }; int main() { int N, Q; cin >> N >> Q; atcoder::segtree seg(N); rep(i, N) { int A; cin >> A; seg.set(i, A); } rep(_, Q) { int c; cin >> c >> X; if (seg.all_prod() <= X) { cout << -1 << endl; continue; } if (c == 1) { int i = seg.max_right(0); cout << i + 1 << endl; seg.set(i, e()); } if (c == 2) { int i = seg.min_left(N); cout << i << endl; seg.set(i - 1, e()); } } return 0; }