#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define ll long long

int main() {
	int t;
	cin>>t;
	
	
	while(t--)
	{
	    int n;
	    cin>>n;
        ll a[n];
        multiset<ll> s;

        for(int i=0;i<n;i++) {cin>>a[i];s.insert(a[i]);}
        
        
        vector<vector<int>> ans(2);

        int flag[2];
        flag[0]=1,flag[1]=1;

        //flag[0]
        ll e=*s.begin();
        s.erase(s.find(e));
        ans[0].pb(e);
        int b=1;

        while(!s.empty() && flag[0]==1)
        {    
             ll val=-1;
             if(b==1) {auto e1=prev(s.end());  if(*e1>e) val=*e1;else {flag[0]=0;continue;}}
             else { auto e1=s.begin(); if(*e1<e) val=*e1;else {flag[0]=0;continue;} }  
            
            
            // cout<<val<<" "<<b<<endl;
            s.erase(s.find(val));
            ans[0].pb(val);
            e=val;
            b=1-b;
        }

        s.clear();
        for(int i=0;i<n;i++) s.insert(a[i]);
        e=*s.rbegin();
        s.erase(s.find(e));
        ans[1].pb(e);
        b=0;

        while(!s.empty() && flag[1]==1)
        {    
             ll val=-1;
             if(b==1) {auto e1=prev(s.end());  if(*e1>e) val=*e1;else {flag[1]=0;continue;}}
             else { auto e1=s.begin(); if(*e1<e) val=*e1;else {flag[1]=0;continue;} }  
            
            
            // cout<<val<<" "<<b<<endl;
            s.erase(s.find(val));
            ans[1].pb(val);
            e=val;
            b=1-b;
        }


        if(flag[0]==1) {for(int i=0;i<ans[0].size();i++) cout<<ans[0][i]<<" ";}
        else
        {
            if(flag[1]==1) {for(int i=0;i<ans[1].size();i++) cout<<ans[1][i]<<" ";}
            else cout<<-1;
        }
        cout<<endl;

        




	}
	return 0;
}
