#include using namespace std; #define rep(i, n) for(int i=0; i #include int main() { int N, A; cin >> N >> A; vector X(N); rep(i, N) { cin >> X[i]; } int T; cin >> T; vector> q(T, vector(2)); rep(i, T) { cin >> q[i][0] >> q[i][1]; } priority_queue, vector>, greater>> pq; rep(i, N) { pq.push({ X[i], 1, i }); } rep(i, T) { pq.push({ q[i][0],0, i }); pq.push({ q[i][1],2, i }); } set s; s.insert(-1); vector ans(N); while (!pq.empty()) { int t = pq.top()[1]; int z = pq.top()[0]; int c = pq.top()[2]; pq.pop(); if (t == 0) { s.insert(c+1); } if (t == 2) { s.erase(c+1); } if (t == 1) { ans[c] = *rbegin(s); } } rep(i, N) { cout << ans[i] << endl; } }