1
10 2 20
8 5 2 4 10 3 9 7 1 6
5 10
3 17
6 31
3 46
10 42
7 19
9 36
7 3
3 13
8 32
10 25
9 34
10 34
6 33
3 9
2 17
4 5
10 44
9 15
5 40
 1
47 1 47
40 45 19 10 44 33 47 12 2 46 16 23 3 14 21 28 31 42 22 18 35 38 24 25 36 32 4 34 5 20 37 39 6 9 1 7 29 8 17 27 30 11 13 41 15 43 26
39 25
41 24
32 30
10 6
30 13
24 35
41 17
31 31
9 44
21 8
43 23
8 5
29 13
8 4
47 20
22 10
37 27
17 39
43 23
14 42
46 19
43 24
30 31
24 35
31 13
31 32
20 9
3 2
20 9
14 7
7 3
21 36
32 30
47 19
11 43
6 2
31 31
26 12
47 20
2 1
40 24
16 40
45 21
36 28
36 28
17 38
30 31
 1
1 1 4
1
1 1
1 2
1 3
1 4
 1
10 1 1
10 4 6 5 7 9 8 1 3 2
6 10

3
2
7
10
6
7
7
7
5
1
6
6
1
9
4
4
4
1
1
3
 27
27
37
16
20
24
11
20
46
35
11
2
34
47
26
24
7
28
11
3
26
13
37
24
37
37
22
10
22
14
47
38
37
43
23
33
20
4
26
19
30
21
43
1
1
42
37
 1
-1
-1
-1
 9

#include <bits/stdc++.h>
using namespace std;
int T,n,c,q,p[30010],st[10],t,now;
long long L[10][30010],R[10][30010],f[10][30010];
bool cmp(int x,int y){
	return p[now+x]<p[now+y];
}
int qry(int pos,long long id){
	if(id>f[c][1]) return -1;
	int op=c;now=1;
	while(now<=n){
		int l=now,r=n,res,mid;
		while(l<=r){
			mid=(l+r)>>1;
			if(L[op][now]-L[op][mid]<id&&R[op][now]-R[op][mid]<=f[op][now]-id) l=mid+1,res=mid;
			else r=mid-1; 
		}
		if(res>pos) return p[pos];
		id-=(L[op][now]-L[op][res]),now=res,t=0;
		for(int i=0;i<=op&&now+i<=n;i++) st[++t]=i;
		sort(st+1,st+t+1,cmp);
		int pp=0;
		for(int i=1;i<=t;i++){
			if(id<=f[op-st[i]][now+st[i]+1]){
				pp=st[i];
				break;
			}
			else id-=f[op-st[i]][now+st[i]+1];
		}
		if(pp+now>=pos) return p[2*now-pos+pp];
		op-=pp,now+=pp+1;
	}
	return p[pos];
}
void solve(){
	scanf("%d%d%d",&n,&c,&q);
	for(int i=1;i<=n;i++) scanf("%d",&p[i]);
	for(int i=0;i<=c;i++){
		f[i][n+1]=1,L[i][n+1]=R[i][n+1]=0;
		for(int j=n;j>=1;j--){
			f[i][j]=f[i][j+1],L[i][j]=L[i][j+1],R[i][j]=R[i][j+1];
			for(int k=1;k<=i&&j+k<=n;k++){
				long long v=f[i-k][j+k+1];
				f[i][j]+=v;
				assert(f[i][j]<1e18);
				if(p[j]>p[j+k]) L[i][j]+=v;
				else R[i][j]+=v;
			}
		}
	}
	while(q--){
		int pos;
		long long id;
		scanf("%d%lld",&pos,&id);
		printf("%d\n",qry(pos,id));
	}
}
int main(){
	scanf("%d",&T);
	while(T--) solve();
}