#include #include #include using namespace std; using namespace atcoder; using ll = long long; int op(int a, int b) { return max(a, b); } int e() { return -1; } int target; bool f(int v) { return v < target; } int main(){ int N, Q; cin >> N >> Q; vector A(N, 0); for(int i = 0; i < N; i++) cin >> A[i]; segtree seg(A); for(int q = 0; q < Q; q++){ int c; cin >> c >> target; target++; if(c == 1){ auto ret = seg.max_right(0); if(ret >= N){ cout << -1 << endl; }else{ cout << ret + 1 << endl; seg.set(ret, 0); } } if(c == 2){ auto ret = seg.min_left(N); ret--; if(ret < 0){ cout << -1 << endl; }else{ cout << ret + 1 << endl; seg.set(ret, 0); } } } return 0; }