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 cnt_inv(a):
    ans = 0
    for i in range(len(a)):
        for f in range(i + 1, len(a)):
            if a[f] < a[i]:
                ans += 1
    return ans

for testcase in range(int(input())):
    n = int(input())
    a = list(map(int, input().split()))
    inv = cnt_inv(a)

    sorted_a = list(sorted(a))

    last_eq = -1
    for i in range(n - 1):
        if sorted_a[i] == sorted_a[i + 1]:
            last_eq = i + 1

    # print("last_eq", last_eq) 
    ans = []
    def shift(pos):
        global inv
        inv -= int(a[pos] > a[pos + 1]) + int(a[pos] > a[pos + 2]) + int(a[pos + 1] > a[pos + 2])
        a[pos], a[pos + 1], a[pos + 2] = a[pos + 2], a[pos], a[pos + 1]
        inv += int(a[pos] > a[pos + 1]) + int(a[pos] > a[pos + 2]) + int(a[pos + 1] > a[pos + 2])
        ans.append(pos + 1)

    for i in range(n - 3):
        pos = min(range(i, n), key=lambda x: a[x])
        # print(a, val, pos) 
        while pos > i + 1:
            shift(pos - 2)
            pos -= 2
        if pos == i + 1:
            shift(i)
            shift(i)
        if i == last_eq and inv % 2 == 1:
            shift(i)
            shift(i - 1)

    last_min = min(*a[-3:])
    while a[-3] != last_min:
        shift(n - 3)
    
    if n - 3 == last_eq and inv % 2 == 1:
        shift(n - 3)
        shift(n - 4)
        
    cnt = 0
    while not (a[-3] <= a[-2] <= a[-1]):
        shift(n - 3) 
        cnt += 1
        if cnt > 5:
            break
    if cnt > 5:
        print(-1)
    else:
        print(len(ans))
        print(' '.join(map(str, ans)))