N,A = map(int,input().split()) X = list(map(int,input().split())) T = int(input()) import heapq #X = [(X[i],i) for i in range(N)] q = [] for _ in range(T): l,r = map(int,input().split()) q.append((l,r)) h1 = [] h2 = [] for i in range(T): l,r = q[i] h1.append((l,-i,1)) h1.append((r,i + N + 100,2)) for i in range(N): x = X[i] h1.append((x,i,3)) heapq.heapify(h1) ans = [-1] * N s = set() while h1: now,j,f = heapq.heappop(h1) if f == 1: j = -j heapq.heappush(h2,-j) elif f == 2: j = j - N - 100 s.add(j) else: while h2: u = -heapq.heappop(h2) if u in s: continue else: ans[j] = u + 1 heapq.heappush(h2,-u) break for a in ans: print(a)