Problem: You have array of n numbers a_{1}, a_{2}, …, a_{n}. 

Rearrange these numbers to satisfy |a_{1} - a_{2}| ≤ |a_{2} - a_{3}| ≤ … ≤ |a_{n-1} - a_{n}|, where |x| denotes absolute value of x. It's always possible to find such rearrangement.

Note that all numbers in a are not necessarily different. In other words, some numbers of a may be same.

You have to answer independent t test cases.

Input

The first line contains a single integer t (1 ≤ t ≤ 10^{4}) — the number of test cases.

The first line of each test case contains single integer n (3 ≤ n ≤ 10^{5}) — the length of array a. It is guaranteed that the sum of values of n over all test cases in the input does not exceed 10^{5}.

The second line of each test case contains n integers a_{1}, a_{2}, …, a_{n} (-10^{9} ≤ a_{i} ≤ 10^{9}).

Output

For each test case, print the rearranged version of array a which satisfies given condition. If there are multiple valid rearrangements, print any of them.

Example

Input


2
6
5 -2 4 8 6 5
4
8 1 4 2


Output


5 5 4 6 8 -2
1 2 4 8

Note

In the first test case, after given rearrangement, |a_{1} - a_{2}| = 0 ≤ |a_{2} - a_{3}| = 1 ≤ |a_{3} - a_{4}| = 2 ≤ |a_{4} - a_{5}| = 2 ≤ |a_{5} - a_{6}| = 10. There are other possible answers like "5 4 5 6 -2 8".

In the second test case, after given rearrangement, |a_{1} - a_{2}| = 1 ≤ |a_{2} - a_{3}| = 2 ≤ |a_{3} - a_{4}| = 4. There are other possible answers like "2 4 8 1".

Solution (in JAVA):

Solution:
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.util.StringTokenizer; 
import java.util.*;
 
public class Solution 
{ 
    
    public static void main(String[] args) throws IOException 
    { 
  
       BufferedReader br = new BufferedReader( 
                              new InputStreamReader(System.in));
                
                int t = Integer.parseInt(br.readLine());
               // StringTokenizer sa=new StringTokenizer(br.readLine());
                  for(int j=0;j<t;j++)
                   {
                       int n = Integer.parseInt(br.readLine());
                       StringTokenizer sa=new StringTokenizer(br.readLine());
                       int arr[]=new int[n];
                       for(int i=0;i<n;i++)
                       arr[i]= Integer.parseInt(sa.nextToken());
                       Arrays.sort(arr);
                    //     for(int i=0;i<n;i++)
                    //   System.out.print(arr[i]+" ");
                       int ans[]=new int[n];
                       int k=0;
                       for(int i=0;i<n/2;i++){
                           ans[k]=arr[n-i-1];
                           ans[k+1]=arr[i];
                           k=k+2;
                       }
                       if(n%2!=0)
                       ans[n-1]=arr[n/2];
                        //System.out.println();
                         //System.out.println();
                      for(int i=n-1;i>=0;i--)
                       System.out.print(ans[i]+" ");
                    System.out.println();
                   }    
            
            
                
                     
    }
    }
class act{
    int s;
    int e;
    int i;
    public act(int x,int y,int z){
        s=x;
        e=y;
        i=z;
    }
}
class Sort implements Comparator<act> 
{ 
    // Used for sorting in ascending order of 
    // roll number 
    public int compare(act a, act b) 
    { 
        if(a.s==b.s)
        return a.e - b.e; 
        else
        return a.s-b.s;
    } 
}