#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N,A; cin >> N >> A; vectorX(N); for(int i = 0; i < N; i++) { cin >> X[i]; } int T; cin >> T; vectorL(T),R(T); for(int i = 0; i < T; i++) { cin >> L[i] >> R[i]; } set>st; for(int i = 0; i < N; i++) { st.insert({X[i],i}); } vectorans(N,-1); for(int i = T-1; i >= 0; i--) { while(st.lower_bound({L[i],-1}) != st.end()) { auto it = st.lower_bound({L[i],-1}); if((*it).first <= R[i]) { ans[(*it).second] = i+1; st.erase(it); continue; } else { break; } } } for(int i = 0; i < N; i++) { cout << ans[i] << "\n"; } }