Sereja have array A' that contain N integers. Now Sereja want to permute elements of the array, he want to use some permutation p, such that A[i] = A'[p[i]], where A - new array. 

Lets function f(A,i) = S - A[i] - A[i +1] - ... - A[j], where j is the maximum possible index, such that A[i] + A[i + 1] + ... + A[j] <= S, if A[i] > S, f(A, i) = S.

Help Sereja to find such permutation p, such that (f(A, 1) + f(A, 2) + ... f(A, k))/k will be as low as possible. 

-----Input-----

First line of input contain integer T - number of testcases. Next lines contain T testcases. First line of each testcase contain three integers N, k, S. Next line contain N integers - array A'.

-----Output-----

For each testcase output N numbers in one line - permutation p. 

-----Constraints-----
- 1 ≤ T ≤ 10
- 1 ≤ N ≤ 2000
- 1 ≤ k ≤ N
- 1 ≤ A'[i] ≤ 10^4
- 1 ≤ S ≤ 10^9

-----Example-----
Input:
2
3 2 4
3 4 1
4 4 1
1 1 1 1

Output:
2 1 3
4 3 2 1


-----Scoring-----

Suppose Sum will be sum of yours (f(A, 1) + f(A, 2) + ... f(A, k))/k per each testcase.  
Lets B will be the smallest such sum. Your score will be equal to B/Sum. Lower scores will earn more points.

We have 20 official test files. You must correctly solve all test files to receive OK. During the contest, your overall score is the sum of the scores on the first 4 test files. After the contest, all solutions will be rescored by the sum of the scores on the rest 16 test files. Note, that public part of the tests may not contain some border cases.

Difficulty: UNKNOWN_DIFFICULTY

Starter code:

Solutions:
test = int(input())
for i in range(test):
	(N, S, K) = list(map(int, input().split()))
	lis = list(map(int, input().split()))
	ans = [i + 1 for i in range(N)]
	ans.sort(reverse=True)
	for j in range(N):
		print(ans[j], end=' ')
	print('')


T = int(input())
for t in range(T):
	(n, k, s) = [int(x) for x in input().split()]
	input()
	ans = ''
	for i in range(1, n + 1):
		ans += str(i) + ' '
	print(ans)


for i in range(int(input())):
	l = input().split()
	n = int(l[0])
	k = int(l[1])
	s = int(l[2])
	ni = input().split()
	num = [int(x.strip()) for x in ni]
	p = sorted(list(range(len(num))), key=num.__getitem__)
	for j in p:
		print(j + 1, end=' ')
	print()


t = int(input())
while t > 0:
	t -= 1
	(n, k, s) = list(map(int, input().split()))
	arr = list(map(int, input().split()))
	temp = sorted(list(range(n)), key=lambda x: arr[x])
	arr.sort()
	ind = n - 1
	while ind > 1 and n >= 3:
		if arr[ind] > s:
			ind -= 1
		elif arr[ind] + arr[ind - 2] <= s:
			(arr[ind - 1], arr[ind]) = (arr[ind], arr[ind - 1])
			(temp[ind - 1], temp[ind]) = (temp[ind], temp[ind - 1])
			ind -= 2
		else:
			ind -= 1
	ans = [str(i + 1) for i in temp]
	print(' '.join(ans))


import random
t = int(input())
while t > 0:
	t -= 1
	(n, k, s) = list(map(int, input().split()))
	arr = list(map(int, input().split()))
	temp = sorted(list(range(n)), key=lambda x: arr[x])
	arr.sort()
	for j in range(5):
		for i in range(n - 1):
			if arr[i] + arr[i + 1] > s:
				(arr[i], arr[i + 1]) = (arr[i + 1], arr[i])
				(temp[i], temp[i + 1]) = (temp[i + 1], temp[i])
	ans = [str(i + 1) for i in temp]
	print(' '.join(ans))


import random
t = int(input())
while t > 0:
	t -= 1
	(n, k, s) = list(map(int, input().split()))
	arr = list(map(int, input().split()))
	temp = sorted(list(range(n)), key=lambda x: arr[x], reverse=True)
	arr = sorted(arr, reverse=True)
	ind = 0
	while ind < n and arr[ind] > s:
		ind += 1
	temp = sorted(temp[ind:]) + temp[:ind]
	ans = [str(i + 1) for i in temp]
	print(' '.join(ans))


import random
t = int(input())
while t > 0:
	t -= 1
	(n, k, s) = list(map(int, input().split()))
	arr = list(map(int, input().split()))
	temp = list(range(n, 0, -1))
	random.shuffle(temp)
	ans = [str(i) for i in temp]
	print(' '.join(ans[::-1]))