Problem: You are given a positive integer n, it is guaranteed that n is even (i.e. divisible by 2).

You want to construct the array a of length n such that: 

  * The first n/2 elements of a are even (divisible by 2); 
  * the second n/2 elements of a are odd (not divisible by 2); 
  * all elements of a are distinct and positive; 
  * the sum of the first half equals to the sum of the second half (∑_{i=1}^{n/2} a_i = ∑_{i=n/2 + 1}^{n} a_i). 



If there are multiple answers, you can print any. It is not guaranteed that the answer exists.

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 only line of the test case contains one integer n (2 ≤ n ≤ 2 ⋅ 10^5) — the length of the array. It is guaranteed that that n is even (i.e. divisible by 2).

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

Output

For each test case, print the answer — "NO" (without quotes), if there is no suitable answer for the given test case or "YES" in the first line and any suitable array a_1, a_2, ..., a_n (1 ≤ a_i ≤ 10^9) satisfying conditions from the problem statement on the second line.

Example

Input


5
2
4
6
8
10


Output


NO
YES
2 4 1 5
NO
YES
2 4 6 8 1 3 5 11
NO

Solution (in JAVA):

Solution:
/* MOHD SADIQ
    mohdsadiq058
    */

import java.util.*;
import java.io.*;
import java.math.*;

public class Main
{
    private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    private String strVal() throws IOException{
        return br.readLine().trim();
    }

    private long longVal() throws IOException {
        return Long.parseLong(br.readLine().trim());
    }

    private int intVal() throws IOException {
        return Integer.parseInt(br.readLine().trim());
    }

    private double doubleVal() throws IOException {
        return Double.parseDouble(br.readLine().trim());
    }

    private int[] intArr() throws IOException {
        String[] s = br.readLine().trim().split(" ");
        int n = s.length;
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = Integer.parseInt(s[i]);
        }
        return a;
    }

    private long[] longArr() throws IOException {
        String[] s = br.readLine().trim().split(" ");
        int n = s.length;
        long[] a = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = Long.parseLong(s[i]);
        }
        return a;
    }

    private double[] doubleArr() throws IOException {
        String[] s = br.readLine().trim().split(" ");
        int n = s.length;
        double[] a = new double[n];
        for (int i = 0; i < n; i++) {
            a[i] = Double.parseDouble(s[i]);
        }
        return a;
    }

    private String[] stringArr() throws IOException {
        String[] s = br.readLine().trim().split(" ");
        return s;
    }

    private char[] charArr() throws IOException {
        return br.readLine().trim().toCharArray();
    }

    class Pair<K,V>{
        K first;
        V second;
        Pair(K a,V b){
            first =a;
            second =b;
        }
        Pair(){
        }
    } 

    public static long powMod(long x, long y, long mod) {
        long res = 1;
        while (y > 0) {
            if (y % 2 != 0) {
                res = (res * x) % mod;
            }
            y /= 2;
            x = (x * x) % mod;
        }
        return res;
    }
    
    public static long mod = (long) Math.pow(10, 9) + 7;
    // static HashSet<Integer> hs = new HashSet<Integer>();
    public static String solve() throws IOException {
        Main obj = new Main();
        int n = obj.intVal();
        if(n%4!=0)
            return "NO";
        int half = n/2;
        StringBuffer ans = new StringBuffer();
        ans.append("YES\n");
        long sum = 0;
        for(int i=1;i<=half;i++){
            ans.append(i*2+" ");
            sum += i*2;
        }
        for(int i=1;i<half;i++){
            ans.append(i*2-1+" ");
            sum -= (i*2-1);
        }
        ans.append(sum);
        return ans+"";
    }

    public static void main(String[] args) throws IOException
    {
        Main ob = new Main();
       int total_test_case = ob.intVal();
        //  int total_test_case = 1;
        StringBuffer ans = new StringBuffer();
        String k;
        // hs.add(2);
        // for(int i=2;Math.pow(2,i)<=Math.pow(10,9);i++){
        //     hs.add((int)Math.pow(2,i)-1);
        // }
        for (int test_case = 0; test_case < total_test_case; test_case++) {
            k = ob.solve();
            // System.out.println(k);
            // ans.append("Case #"+test_case+": "+k+"\n");
            ans.append(k+"\n");
        }
        System.out.print(ans);
    }
}