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;

#define rep(i,a,n) for (int i=a;i<n;i++)
#define per(i,a,n) for (int i=n-1;i>=a;i--)
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define fi first
#define se second
#define SZ(x) ((int)(x).size())
typedef long long ll;
typedef double db;
typedef vector<int> VI;
typedef pair<int,int> PII;
typedef pair<long long,int> PLI;
typedef pair<long long,long long> PLL;
const ll mod=1000000007;
//mt19937_64 mrand(random_device{}()); 
//int rnd(int x) { return mrand() % x;}
ll powmod(ll a,ll b) {ll res=1;a%=mod; assert(b>=0); for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}
ll gcd(ll a,ll b) {return b?gcd(b,a%b):a;}

struct Node
{
	int l,r;
	ll w;
};

Node dq[5][400066];
int n,c,q;
int p[30066];
int sum[5][200066];
ll sumw[5][400066];
int l[5],r[5];
vector<PII>vec;

ll f_eq(int len,int c)
{
	if(len<=1)return c==0;
	if(len-1<c)return 0;
	ll ret=1;
	for(int i=len-1;i>=len-c;i--)ret*=i;
	for(int i=c;i>1;i--)ret/=i;
	return ret;
}

ll f(int len,int c)
{
	ll ret=0;
	for(int i=0;i<=c;i++)ret+=f_eq(len,i);
	return ret;
}

bool cmp(Node&lhs,Node&rhs)
{
	return p[lhs.r]<p[rhs.r];
}

Node F(int i,int c,ll rank)
{
	//printf("____%d %d %lld\n",i,c,rank);
	int L=l[c]+sum[c][i],R=r[c]-1;
	while(L<R)
	{
		int mid=(L+R)>>1;
		if(sumw[c][mid]-sumw[c][sum[c][i]+l[c]-1]>=rank)
			R=mid;
		else L=mid+1;
	}
	//printf("??? %d %d\n",L,sum[c][i]);
	return Node{dq[c][L].l,dq[c][L].r,sumw[c][L-1]-sumw[c][sum[c][i]+l[c]-1]};
}

int main()
{
	int _;
	scanf("%d",&_);
	while(_--)
	{
		scanf("%d%d%d",&n,&c,&q);
		//printf("%lld\n",f(n,c));
		for(int i=1;i<=n;i++)scanf("%d",&p[i]);

		for(int i=0;i<=c;i++)
			for(int j=0;j<=n;j++)sum[i][j]=0;

		for(int s=1;s<=c;s++)
		{
			l[s]=200033,r[s]=200033;
			dq[s][r[s]++]=Node{n,n,1};

			
			for(int i=n-1;i>0;i--)
			{
				int L=0,R=0;
				for(int j=i+1;j<=min(n,i+s);j++)
				{
					if(p[j]<p[i])
					{
						L++;
						dq[s][l[s]-L]=Node{i,j,f(n-j,s-(j-i))};
						sum[s][i+1]++;
					}
					else
					{
					
						dq[s][r[s]+R]=Node{i,j,f(n-j,s-(j-i))};
						R++;
					}
				}
				l[s]-=L;
				sort(dq[s]+l[s],dq[s]+l[s]+L,cmp);
				r[s]+=R;
				sort(dq[s]+r[s]-R,dq[s]+r[s],cmp);
			}
				
			for(int i=1;i<=n;i++)sum[s][i]+=sum[s][i-1];
			sumw[s][l[s]-1]=0;
			for(int i=l[s];i<r[s];i++)
				sumw[s][i]=sumw[s][i-1]+dq[s][i].w;
		}
		// int tmp=4;
		// for(int i=l[tmp];i<r[tmp];i++)
		// 	printf("%d %d %lld____\n",dq[tmp][i].l,dq[tmp][i].r,dq[tmp][i].w);
		// puts("_____");
		// tmp=3;
		// for(int i=l[tmp];i<r[tmp];i++)
		// 	printf("%d %d %lld____\n",dq[tmp][i].l,dq[tmp][i].r,dq[tmp][i].w);

	//	printf("%lld ((\n",sumw[4][200023]);
		ll lim=f(n,c);
		while(q--)
		{
			int x;
			ll y;
			scanf("%d%lld",&x,&y);
			vec.clear();

			if(y>lim){puts("-1");continue;}

			int pos=1,w=c;
			while(pos<n&&w>0)
			{
				auto node=F(pos,w,y);
				//puts("@@@");
				vec.pb(mp(node.l,node.r));
				pos=node.r+1;
				w-=(node.r-node.l);
				y-=node.w;
			}

			bool ok=false;

			//for(auto node:vec)printf("%d %d__\n",node.fi,node.se);
			for(auto node:vec)
			{
				if(node.fi<=x&&node.se>=x)
				{
					ok=true;
					int ans=p[node.fi+node.se-x];
					printf("%d\n",ans);
					break;
				}
			}
			if(!ok)printf("%d\n",p[x]);
		}
	}
	return 0;
}

/*
1
3 1 4
1 2 3
1 1
2 1
3 1
1 2


1
6 4 1
6 5 4 3 1 2
3 14


*/