text: tree[r]) # l>>=1 # r>>=1 # return res # def getMaxSegTree(arr): # return SegmentTree(arr,lambda a,b:max(a,b),initialRes=-float('inf')) # def getMinSegTree(arr): # return SegmentTree(arr,lambda a,b:min(a,b),initialRes=float('inf')) # def getSumSegTree(arr): # return SegmentTree(arr,lambda a,b:a+b,initialRes=0) from collections import Counter def main(): # mlogn solution n=int(input()) a=readIntArr() b=sorted(a,reverse=True) m=int(input()) allans=[] for _ in range(m): k,pos=readIntArr() cnt=Counter(b[:k]) totalCnts=0 for x in a: if cnt[x]>0: cnt[x]-=1 totalCnts+=1 if totalCnts==pos: allans.append(x) break multiLineArrayPrint(allans) return import sys input=sys.stdin.buffer.readline #FOR READING PURE INTEGER INPUTS (space separation ok) # input=lambda: sys.stdin.readline().rstrip("\r\n") #FOR READING STRING/TEXT INPUTS.def oneLineArrayPrint(arr): print(' '.join([str(x) for x in arr])) def multiLineArrayPrint(arr): print('\n'.join([str(x) for x in arr])) def multiLineArrayOfArraysPrint(arr): print('\n'.join([' '.join([str(x) for x in y]) for y in arr])) def readIntArr(): return [int(x) for x in input().split()] # def readFloatArr(): # return [float(x) for x in input().split()] def makeArr(defaultValFactory,dimensionArr): # eg.makeArr(lambda:0,[n,m]) dv=defaultValFactory;da=dimensionArr if len(da)==1:return [dv() for _ in range(da[0])] else:return [makeArr(dv,da[1:]) for _ in range(da[0])] def queryInteractive(i,j): print('?{} {}'.format(i,j)) sys.stdout.flush() return int(input()) def answerInteractive(ans): print('!{}'.format(' '.join([str(x) for x in ans]))) sys.stdout.flush() inf=float('inf') MOD=10**9+7 # MOD=998244353 for _abc in range(1): main()