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:
#!/usr/bin/env python
import os
import sys
from io import BytesIO, IOBase
from bisect import bisect_left,bisect_right
import threading 
from collections import Counter,defaultdict  
arr=[]




def main():
    for _ in range(int(input())):
        n=int(input())
        arr=list(map(int,input().split()))
        a=arr.copy()
        a.sort()
        mis=0
        cnt=[0]*501
        for i in arr:
            cnt[i]+=1
        b=True
        for i in cnt:
            if i>1:
                b=False
        
        for i in range(n):
            for j in range(i+1,n):
                if arr[j]<arr[i]:
                    mis+=1
        
        if mis%2==1 and b:
            print(-1)
        else:
            ans=[]
            st=n-1
            while st>1:
                ma_=max(arr)
                ind=arr.index(ma_)
                # print(st,ind,ma_,arr)
                for i in range(ind,st-1):
                    arr[i],arr[i+1],arr[i+2]=arr[i+2],arr[i],arr[i+1]
                    # print(arr)
                    ans.append(i)
                if arr[st]!=ma_:
                    arr[st-2],arr[st-1],arr[st]=arr[st],arr[st-2],arr[st-1]
                    ans.append(st-2)
                arr[st]=-1
                st-=1
            # print(ans)
            # print(arr)
            if arr[0]>arr[1]:
                i=1
                while i+2<len(a) and a[i]!=a[i-1]:
                    ans.append(i)
                    ans.append(i-1)
                    a[i+1],a[i+2]=a[i+2],a[i+1]
                    i+=2
                    if i<n-1 and  a[i+1]==a[i-1]:
                        ans.append(i-1)
                        ans.append(i-1)
                        break
            # print("i:",i)

            for i in range(len(ans)):
                ans[i]+=1
            print(len(ans))
            print(*ans)






            









       
 
 
BUFSIZE = 8192
 
 
class FastIO(IOBase):
    newlines = 0
 
    def __init__(self, file):
        self._fd = file.fileno()
        self.buffer = BytesIO()
        self.writable = "x" in file.mode or "r" not in file.mode
        self.write = self.buffer.write if self.writable else None
 
    def read(self):
        while True:
            b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
            if not b:
                break
            ptr = self.buffer.tell()
            self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
        self.newlines = 0
        return self.buffer.read()
 
    def readline(self):
        while self.newlines == 0:
            b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
            self.newlines = b.count(b"\n") + (not b)
            ptr = self.buffer.tell()
            self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
        self.newlines -= 1
        return self.buffer.readline()
 
    def flush(self):
        if self.writable:
            os.write(self._fd, self.buffer.getvalue())
            self.buffer.truncate(0), self.buffer.seek(0)
 
 
class IOWrapper(IOBase):
    def __init__(self, file):
        self.buffer = FastIO(file)
        self.flush = self.buffer.flush
        self.writable = self.buffer.writable
        self.write = lambda s: self.buffer.write(s.encode("ascii"))
        self.read = lambda: self.buffer.read().decode("ascii")
        self.readline = lambda: self.buffer.readline().decode("ascii")
 
 
sys.stdin, sys.stdout = IOWrapper(sys.stdin), IOWrapper(sys.stdout)
input = lambda: sys.stdin.readline().rstrip("\r\n")
 
# endregion
 
if __name__ == "__main__":
    main()