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 PYTHON3):

Solution:
"""%&&&&&&&&&&%#%##((/,...,////....//....,*/((//,   ,,  .  ****,...,,. ..,...... .  . .................
@@@&@@&&&&&%###(((/*...*****...,//,....,//(/*/,   /,,.. .**/*,/(..   .,,...........  ............ .,
@@@@@@@@@&&%%%####((*....    ....**,   .,,*/*,,   .,**  .***/*..    .. ,...... .  ....   ..........,
@@@@@@&&@&&%%%%%###(/,....*///....,/,.    ,,*,.   ,,***  ,**///...  .........  . .  .   ...... ....,
@@@@@@&&&&&%%%%%%%%#((...,*/***.  .***/...      ./*/***,  ,,*/// ..   ...... .   ..  .... ..........
@@@@@@@&&&&%%%%%&%###/(.. ,,.    ,**/**//*/***,,/**//*/**(*,***/*...   ......   ..   .   . . ... ...
&&%%%###((/#%%%&%%##((/,. . ..,/////,*/****,******,*,,                     .. .. ...      .   . ....
@&%%###((//#%#####%#(((#,/((/*//**/**,.       .,,,/(##%%%#%%%(##(#(//(((((/(//*......   .   ..,...,.
@&%%#((((//#####((((/////*//,.   ..,,/%&@@@@@@@@@@@@@@@@@@@@@@@@@&%%##((((((//......     ...,.......
&&%%##((////((#((//*,.    .,/%%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%((/*. . ...,,... ......   .*,..
&%%%##(/((/*///,...,*#%%%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/.  .  ,.   .     ..,,..       ..
@&&%%##(///*, ,/#%%&&@@@@@@@@@@@@@@@@@@&&&@@@@@@@@@@@@@@@@@@&&@@@@@&..   ....         . .         ..
@@&%####((,..*#&&@@@@@@@@@@@@@@&&@@@@@@#%&@@@@@@@@@@@&%%%%&&&&&@@@@&*.  .......     ..      .  .  ..
@@@@%##(((///%@@@@@@@@@&&@@@@@&&&&&@@@&#%&@@@@@@@@@@&(//*/(/(##%&@@@%#*     .      ....    .      ..
@@@@@%#(#(/////%@@@@@@@&&&%&%&@&%%&%%&&@%@&&&&%%%&&%**/%@@&#%&&##%@&#(/            ..,..     ..... .
@@@@@@&%((((//***&&&@@@@@&&&&&%&%&%#&&%%@&&%#**,*////(%*   ..,,,*/#@#(/           . .      .. ..,...
@@@@@@@@%#(/*/*,..(&%@@@@@@&#%%&@%#%%%&&%(,.    .,,,.,,.,/(%%(*///,*%(*          ...       .........
@@@@@@@@@%#/*//*,,*#&@@&&@@@@@@@@&&&&&#*..      ..,,*(.& %* .&%(*,*,//.         .,   .   ..,, . ,...
@@@@@@@@@@%#((/****//#@&/##(*,......,**,,,.    ,/(**/   ## **/**..,,***        .... .          .    
@&@@@@@@@@@&#(//**,,(*/%/,,.,,(/&@**%.*/***,.  .,,,,.,,***//*......,,            .,.       ...      
@@@@@@@@@@@@@##((/,,..,,&*,.**((  ,# *..,....    .,,.          ...,,,        ..         . .....     
@@@@@@@@@@@@@@%#(///*,,..%,....,**,,,**.  ....    .,,.          ..,**        *  .       . .  .    ..
@@@@@@@@@@@@@@@&#((//**,. ..              ....     .,,.        ..,***..     ,     .     ...,..,....,
@@@@@@@@@@@@@@@@&##((/***,,,,..            ,..         ..       ,,//..,,    .      .      .., .. ...
@@@@@@@@@@@@@@@&@@&@@&&&&&&&&*.                       ,(.     .,,*//*,  .*,         ..... ..   .....
@@@@@@@@@@@@@@@@&&&&&&&&%&&&&%#.            ,,,.   .((*.. .,***.,,/.  */,  .**. . .. ......  .   ...
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&(,...         ..,**,,....*#*,..,*/.(%%...(/.. //*     .  ..   ..*,..
@@@@@@@@@@@@@@@@@@&@&%%#%%/,,(***(#*,....*,..   .,,,**   .* .,**&/(  .(*,  .,* ./..   .       ..,  .
&@@@@@@@@@@@@@@@&&&&&&%%.,.,**,..,******,,.   ...  ...,**,...**  %(#/..  ((*. /**...           ..  .
/%@@@@@@@@@@@@@&&&&&&( ..*(*/**/ .,**,...,/,..  ..,,,..    .*#..  *#  (%#. .**  ,.,, /.  .. . .. ...
,**&@@@@@@@@%&@&&@&*/./,    ./(//(/ ..... . ,**,. .  ..,,*((/(,..,(%/(/  (#/. */,.,. .       . . ...
.,*/(&@@@@&&&#(/  /(/*/#%%&(  .,*////(,...,..,,**//(((////,,*#,,*#%#,. ((* .((* ./..*..      ...,   
...,,/#@@&/**. .//. .%*  ,*(#%%#,..((/*(/#/,,,,,,**/(((//,,,/(*#%#(,*,*  ,(, .(#. . ..  ..  ..  ....
(,...,,,%,,*(#%%%%%#/,**//( .(*(##&%*  */(((((###/**//((/**(%%%%%.*,. . ,, ./,.,(* ,. .  . .,...    
,/*. ., ....,.....,/%#/(((.      */(*/%%,..../((##%#%%&&&%%%(%*(/,   *(...** ../%(  .. ..      ,  .,
"""

t = int(input())

for gi in range(t):
    n = int(input())
    if((n//2)%2!=0):
        print("NO")
        continue
     
    else:
        print("YES")
        for i in range(1,(n//2)+1):
            print(2*i, end = " ")
        for i in range(1,(n//2)):
            print((2*i)-1, end = " ")
            
        print(2*((n//2)-1) + n//2 +1 )