Problem: You are given an array a consisting of n integers (it is guaranteed that n is even, i.e. divisible by 2). All a_i does not exceed some integer k.

Your task is to replace the minimum number of elements (replacement is the following operation: choose some index i from 1 to n and replace a_i with some integer in range [1; k]) to satisfy the following conditions:

  * after all replacements, all a_i are positive integers not greater than k; 
  * for all i from 1 to n/2 the following equation is true: a_i + a_{n - i + 1} = x, where x should be the same for all n/2 pairs of elements. 



You have to answer t independent test cases.

Input

The first line of the input contains one integer t (1 ≤ t ≤ 10^4) — the number of test cases. Then t test cases follow.

The first line of the test case contains two integers n and k (2 ≤ n ≤ 2 ⋅ 10^5, 1 ≤ k ≤ 2 ⋅ 10^5) — the length of a and the maximum possible value of some a_i correspondingly. It is guratanteed that n is even (i.e. divisible by 2). The second line of the test case contains n integers a_1, a_2, ..., a_n (1 ≤ a_i ≤ k), where a_i is the i-th element of a.

It is guaranteed that the sum of n (as well as the sum of k) over all test cases does not exceed 2 ⋅ 10^5 (∑ n ≤ 2 ⋅ 10^5, ∑ k ≤ 2 ⋅ 10^5).

Output

For each test case, print the answer — the minimum number of elements you have to replace in a to satisfy the conditions from the problem statement.

Example

Input


4
4 2
1 2 1 2
4 3
1 2 2 1
8 7
6 1 1 7 6 3 4 6
6 6
5 2 6 1 3 4


Output


0
1
4
2

Solution (in PYTHON3):

Solution:
def change(i,j,k):
	global a
	a[i],a[j],a[k] = a[k],a[i],a[j]

for nt in range(int(input())):
	n = int(input())
	a = list(map(int,input().split()))
	arr = a[::]
	b = sorted(a)
	if a==b:
		print (0)
		print ()
		continue
	i = 0
	ans = []
	flag = 0
	while i<n:
		if a[i]==b[i]:
			i += 1
			continue
		ind = a[i:].index(b[i])+i
		# print (ind)
		while a[i]!=b[i]:
			if ind==i+1:
				if ind+1>=len(a):
					flag = 1
					break
				ans.append((i,ind,ind+1))
				change(i,ind,ind+1)
				ans.append((i,ind,ind+1))
				change(i,ind,ind+1)
				break
			else:
				ans.append((ind-2,ind-1,ind))
				change(ind-2,ind-1,ind)
				ind -= 2
		if flag:
			break
		i += 1
		# print (a)
	if flag:
		if len(set(a))==n:
			print (-1)
			continue
		else:
			if a[-3]==a[-1]:
				ans.append((n-3,n-2,n-1))
			else:
				ans = []
				a = arr[::]
				flag2 = 0
				temp = sorted(a,reverse=True)
				for i in range(1,n):
					if temp[i]==temp[i-1]:
						number = temp[i]
						break
				i = 0
				while i<n:
					if a[i]==b[i] and (i==0 or a[i]!=a[i-1] or flag2):
						i += 1
						continue
					elif i!=0 and a[i]==a[i-1]:
						if not flag2 and a[i]==number:
							ans.append((i-1,i,i+1))
							change(i-1,i,i+1)
							ans.append((i-1,i,i+1))
							change(i-1,i,i+1)
							ans.append((i,i+1,i+1))
							change(i,i+1,i+2)
							ans.append((i,i+1,i+2))
							change(i,i+1,i+2)
							flag2 = 1
						i += 1
						continue
					# print (i,a,b)
					ind = a[i:].index(b[i])+i
					# print (ind)
					while a[i]!=b[i]:
						if ind==i+1:
							ans.append((i,ind,ind+1))
							change(i,ind,ind+1)
							ans.append((i,ind,ind+1))
							change(i,ind,ind+1)
							break
						else:
							ans.append((ind-2,ind-1,ind))
							change(ind-2,ind-1,ind)
							ind -= 2
					# print (a,i)
					if i!=0 and a[i]==a[i-1] and flag2==0 and a[i]==number:
						ans.append((i-1,i,i+1))
						change(i-1,i,i+1)
						ans.append((i-1,i,i+1))
						change(i-1,i,i+1)
						ans.append((i,i+1,i+1))
						change(i,i+1,i+2)
						ans.append((i,i+1,i+2))
						change(i,i+1,i+2)
						flag2 = 1
					i += 1
					# print (a)
	
	print (len(ans))
	for i in ans:
		print (i[0]+1,end=" ")
	print ()