    #include <bits/stdc++.h>
    #include<cmath>
    using namespace std;
    int main()
    {
        long t;
        cin>>t;
         while(t--)
         {
            long n;
            cin>>n;
            vector<long> v;
            long q;
            for(int i=0;i<n;i++)
            {
                cin>>q;
                v.push_back(q);
                //cout<<"mithil";
            }

                int i=n/2-1;
                int j=i-1;

            sort(v.begin(),v.end());
            cout<<v[i]<<" ";
            for(int cnt=0;cnt<n-1;cnt++)
            {
                if(cnt%2==0)
                  {
                    i=i+1;
                    cout<<v[i]<<" ";

                  }
                else
                    {
                        cout<<v[j]<<" ";
                        j=j-1;
                    }
            }
        }

    }
/*string s;
    cin>>s;
  //  cout<<s.length();
    int row,col;
    if(sqrt(s.length())-floor(sqrt(s.length()))==0)
       {
        row=sqrt(s.length());
        col=sqrt(s.length());
       }
    else
        {

         row=sqrt(s.length());
            col=sqrt(s.length())+1;
       }

    if(row*col<s.length()&&row!=col)
        row=row+1;
//cout<<row<<col;
    char c[row][col];
    for(int i=0,k=0;i<row;i++)
    {
        for(int j=0;j<col;j++)
        {
            if(s[k]!='\0')
                c[i][j]=s[k];
            else
                c[i][j]='\0';
            k++;
        }
    }
    //int a[3][3]={{1,2,3},{4,5,6}};
    for(int i=0;i<col;i++)
    {
        for(int j=0;j<row;j++)
        {
            if(c[j][i]=='\0')
                continue;
            cout<<c[j][i];

        }
        cout<<" ";
    }
*/
/*#include <bits/stdc++.h>

using namespace std;
int main()
{
    int n,m,cnt=0,max=0,cnt2=1;
    cin>>n>>m;
    vector<string> vec;
    for(int i=0;i<n;i++)
    {
        string s;
        cin>>s;
        vec.push_back(s);
    }
    for(int i=0;i<n;i++)
    {
        for(int j=i+1;j<n;j++)
        {
            cnt=0;
            for(int z=0;z<m;z++)
            {
               if((vec[i][z]-48)||(vec[j][z]-48))
                            cnt++;
            }

            if(cnt>=max)
            {
                if(cnt>max)
                    cnt2=1;

                if(j!=1&&cnt==max)
                {
                    cnt2++;
                    cout<<i<<j<<"cnt2="<<cnt2<<endl;
                }
                max=cnt;

            }
        }

    }
    cout<<max<<"\n"<<cnt2;
}
*/

/*#include <bits/stdc++.h>

using namespace std;

//vector<string> split_string(string);

// Complete the queensAttack function below.
//int queensAttack(int n, int k, int r_q, int c_q, vector<vector<int>> obstacles) {

//}
int min(int a,int b)
{
    return (a<b)?a:b;
}
int main()
{
   long n,k,r_q,c_q;
   cin>>n>>k;
   int r[k],c[k];
   cin>>r_q>>c_q;
   int a1=c_q-1,a2=n-c_q,a3=n-r_q,a4=r_q-1,a5=min(n-r_q,c_q-1),a6=min(n-r_q,n-c_q),a7=min(r_q-1,c_q-1),a8=min(r_q-1,n-c_q);
   ;
   for(int i=0;i<k;i++)
    {
        cin>>r[i]>>c[i];

        if((r[i]==r_q)&&(c_q>c[i])&&abs(c_q-c[i]-1)<=a1)
           {
               a1=abs(c_q-c[i]-1);
              // cout<<"a1="<<a1<<endl;
           }
        else if((r[i]==r_q)&&(c_q<c[i])&&abs(c[i]-c_q-1)<=a2)
           {
               a2=abs(c[i]-c_q-1);
            //   cout<<"a2="<<a2<<endl;
           }
        else if((r[i]>r_q)&&(c[i]==c_q)&&abs(r[i]-r_q-1)<=a3)
            {
                a3=abs(r[i]-r_q-1);
               // cout<<"a3="<<a3<<endl;
            }
        else if((r_q>r[i])&&(c[i]==c_q)&&abs(r_q-r[i]-1)<=a4)
           {
               a4=abs(r_q-r[i]-1);
             //  cout<<"a4="<<a4<<endl;
           }
        else if((r[i]>r_q)&&(c[i]<c_q)&&(abs(r[i]-r_q)==abs(c[i]-c_q))&&abs(r[i]-r_q-1)<=a5)
            {
                a5=abs(r[i]-r_q-1);
             //  cout<<"a5="<<a5<<endl;
            }
        else if((r[i]>r_q)&&(c[i]>c_q)&&(abs(r[i]-r_q)==abs(c[i]-c_q))&&abs(r[i]-r_q-1)<=a6)
            {
                a6=abs(r[i]-r_q-1);
              // cout<<"a6="<<a6<<endl;
            }
        else if((r[i]<r_q)&&(c[i]<c_q)&&(abs(r[i]-r_q)==abs(c[i]-c_q))&&abs(r_q-r[i]-1)<=a7)
            {
                a7=abs(r_q-r[i]-1);
               // cout<<"a7="<<a7<<endl;
            }
        else if((r[i]<r_q)&&(c[i]>c_q)&&(abs(r[i]-r_q)==abs(c[i]-c_q))&&abs(c[i]-c_q-1)<=a8)
           {
               a8=abs(c[i]-c_q-1);
             //  cout<<"a8="<<a8<<endl;
           }
    }
    cout<<a1+a2+a3+a4+a5+a6+a7+a8;
}
*/

/*#include <bits/stdc++.h>

using namespace std;
int main()
{
    int n,t;
    cin>>n;
    vector<int> v;

    for(int i=0;i<n;i++)
    {
        cin>>t;
        v.push_back(t);

    }
    t=*max_element(v.begin(),v.end());
    int a[t+1];
    for(int i=0;i<t+1;i++)
        a[i]=0;
    for(int i=0;i<v.size();i++)
    {
        a[v[i]]++;
    }
    int max=0;
    for(int i=0;i<t+1;i++)
    {
       cout<<"a="<<a[i]<<endl;
        if(a[i]>max)
            max=a[i];
        cout<<"max="<<max<<endl;

    }

    cout<<n-max;

}*/

/*#include <bits/stdc++.h>

using namespace std;
int main()
{
    long n,cnt=0,cnt1=0;
    string s;
    cin>>s;
    cin>>n;
    long k=n/s.length();s
    for(int i=0;i<s.length();i++)
    {
        if(s[i]=='a')
            cnt++;
    }
    if(k*s.length()!=n)
        for(int i=0;i<n-k*s.length();i++)
        {
                if(s[i]=='a')
                    cnt1++;

        }
    cout<<k*cnt+cnt1;
}*/
/*#include <bits/stdc++.h>

int minelement(int vect[],int n)
{
    int min=INT_MAX;
    for(int i=0;i<n;i++)
    {
        if(vect[i]<=min&&vect[i]>0)
        {
            min=vect[i];
        }
    }
    return min;
}
using namespace std;
int main()
{
    int n,t;
    cin>>n;
    //int b[n];
    int a[n];
    for(int i=0;i<n;i++)
        {
            cin>>a[i];
            //a.push_back(t);

        }
        int cnt;
    for(int i=0;i<n;i++)
    {
        cnt=0;
        t=minelement(a,n);
        if(t==INT_MAX)
            break;
        //cout<<"t="<<t<<endl;
        for(int j=0;j<n;j++)
        {
            a[j]=a[j]-t;
            if(a[j]>=0)
                cnt++;
          //  cout<<"a="<<a[j]<<endl;

        }

        cout<<cnt<<"\n";
    }
*/
/*#include <bits/stdc++.h>

using namespace std;
bool sqr(int a)
{
    if(a==int(sqrt(a))*int(sqrt(a)))
       {
            return true;
          //  cout<<"TRUE\n";
       }
    else {
        return false;
        //cout<<"FALSE\n";
    }
}
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int a,b;
        cin>>a>>b;
        int i=a;
        int cnt=0;
        while(i<=b)
        {
            bool t1=sqr(i);
            if(t1)
            {
                i=i+2*int(sqrt(i))+1;
                cnt++;
            }
            else {
                i++;
            }
         //   cout<<"asdsadd\n";
        }
        cout<<cnt<<"\n";
    }
}*/
/*#include <bits/stdc++.h>
using namespace std;
int main()
{
    string s,t;
    int k;
    cin>>s;
    cin>>t;
    cin>>k;
    int i=0;
    while(t[i]!='\0')
    {
        if(t[i]!=s[i])
            break;
        i++;
    }
    if(s.size()>=t.size())
    {
        k=k-s.size()-t.size()+2*i;
        if(k>=0)
            cout<<"Yes";
        else
            cout<<"No";

    }
    else
    {
        k=k-i-t.size();
        if(k>=0)
            cout<<"Yes";
        else
            cout<<"No";
    }

}*/
/*#include <bits/stdc++.h>

using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n,c,k,cnt=0;
        cin>>n;
        c=n;
        while(c)
        {
            k=c%10;
            c=c/10;
            if(n%k==0)
                if(k!=0)
                    cnt++;
        }
        cout<<cnt<<"\n";
    }
}*/
/*#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int a[n];
    for(int i=0;i<n;i++)
        cin>>a[i];
        int c,k;
    for(int i=0;i<n;i++,c++)
    {   c=i+1;
        for(int j=0;j<n;j++)
        {
            if(a[j]==c)
            {
                k=j+1;
                break;
            }
        }
        for(int m=0;m<n;m++)
        {
            if(a[m]==k)
            {
                cout<<m+1<<endl;
                break;
            }
        }

    }
}*/
/*#include <bits/stdc++.h>

using namespace std;
int main()
{
    int n,k,q,t;
    cin>>n>>k>>q;
    int a[n];
    for(int i=0;i<n;i++)
        cin>>a[i];
    for(int i=0;i<k;i++)
    {
        t=a[n-1];
        for(int j=n-1;j>0;j--)
        {
            a[j]=a[j-1];
            cout<<"a:"<<a[j]<<endl;
        }
        a[0]=t;
    }
    for(int i=0;i<n;i++)
        cout<<"a="<<a[i]<<endl;
    int m;
    for(int i=0;i<q;i++)
    {
        cin>>m;
        cout<<a[m]<<"\n";
    }
}*/
/*#include <bits/stdc++.h>
using namespace std;
int main()
{   int t;
    cin>>t;
    while(t--)
    {
        int n,c,s;
        cin>>n>>c>>s;
        int m=c%n;
        cout<<"m="<<m<<endl;
        if(n==m)
            cout<<s-1<<"\n";
        else if(s+m-1<=n)
            cout<<s+m-1<<"\n";
        else
            cout<<(s+m)%n-1<<"\n";
    }

}

/* #include <bits/stdc++.h>
using namespace std;
int reverse(int k)
{352926151 380324688 94730870
556065259 615709967 156417592

    int m=k,cnt=0;
    while(m!=0)
    {
        m=m/10;
        cnt++;
    }
    m=0;
    for(int i=cnt-1;i>=0;i--)
    {
        m=m+pow(10,i)*(k%10);
        k=k/10;
    }
    cout<<"m="<<m<<endl;
    return m;
}
int main()
{
    int i,j,k;
    cin>>i>>j>>k;
    int cnt=0;
    for(int z=i;z<=j;z++)
    {
        cout<<"z="<<z<<endl;
        if(abs(z-reverse(z))%k==0)
            cnt++;
    }
    cout<<cnt;
}*/
/*#include <bits/stdc++.h>
#include<vector>
int binary_search(int n,long a[],int rank[],int low,int high)
{

    int m;
    while(low<=high)
    {
        m=low+(high-low)/2;
        if(a[m]==n)
            break;
        else if(a[m]>n)
            low=m+1;
        else
            high=m-1;
    }
    if(n>a[m])
        m=rank[m];
    else if(n==a[m])
        m=rank[m];
    else
        m=rank[m]+1;

    return m;

}
bool f(int x,int y)
{
    return (x>y)?1:0;
}
using namespace std;
int main()
{
    int n;
    cin>>n;
    long score[n];
    for(int i=0;i<n;i++)
    {
        cin>>score[i];

    }
    int m;
    cin>>m;
    long alice[m];
    int rank[n];
    for(int i=0;i<m;i++)
    {
        cin>>alice[i];

    }
    for(int i=0;i<=n-1;i++)
    {
        if(i==0)
            rank[i]=1;
        if(score[i+1]==score[i])
            rank[i+1]=rank[i];
        else
            rank[i+1]=rank[i]+1;
    }
    int m1;
    vector<int> output;
    for(int i=0;i<m;i++)
    {
        m1=binary_search(alice[i],score,rank,0,n-1);
        output.push_back(m1);
    }

    for(int x:output)
        cout<<x<<"\n";

}*/

/*#include <bits/stdc++.h>
bool f(int x,int y)
{
	return (x>y)?1:0;
}
using namespace std;
int main()
{
    int n,t;
    cin>>n;
    vector<long> s;
    for(int i=0;i<n;i++)
    {
        cin>>t;
        s.push_back(t);
    }
    int m;
    cin>>m;
    vector<long> a;
    vector<int> v;
    vector<int> rank;
    for(int i=0;i<m;i++)
    {
        cin>>t;
        a.push_back(t);
    }
    rank.push_back(1);
    for(int i=1;i<s.size();i++)
    {
    	if(s[i]==s[i-1])
    		rank[i]=rank[i-1];
    	else
    		rank[i]=rank[i-1]+1;
    }
    int index;
    for(int i=0;i<a.size();i++)
    {
    	if(a[i]>=s[0])
    		v.push_back(1);
    	else if(a[i]<s[s.size()-1])
    		v.push_back(rank[s.size()-1]+1);
    	else
    		{
    			index=binary_search(a[i],s);
    			v.push_back(rank[index]);
    		}
    }
    for(int x:v)
    	cout<<x<<endl;
}*/
/*#include <bits/stdc++.h>
bool f(int x,int y)
{
	return (x>y)?1:0;
}
using namespace std;
int main()
{
    int n,t;
    cin>>n;
    vector<long> s;
    for(int i=0;i<n;i++)
    {
        cin>>t;
        s.push_back(t);
    }
    int m,cnt=1,k=1,j;
    cin>>m;
    vector<long> a;
    vector<int> v;
    for(int i=0;i<m;i++)
    {
        cin>>t;
        a.push_back(t);
    }
    for(int i=0;i<a.size();i++)
    {
    	//s.push_back(a[i]);
    	//sort(s.begin(),s.end(),f);
    	cnt=1;
    	for(j=0;j<s.size();j++)
    	{
    		//cout<<"j="<<j<<endl;
    		//cout<<"score="<<s[j]<<endl;
    		if(s[j]!=s[j-1]&&j!=0)
    			cnt=cnt+1;

    		if(a[i]>s[j])
    			{
 	   				if(a[i]==s[j-1])
 	   					cnt=cnt-1;
 	   				v.push_back(cnt);
    				k=2;
    				break;

    			}

    	//cout<<"rank"<<cnt<<endl;
    	}
    	if(k==1&&j==s.size())
    	{
    		if(a[i]==s[s.size()-1])
    			v.push_back(cnt);
    		else
    			v.push_back(cnt+1);
    	}
    	//s.erase(s.begin()+k);
    	/*for(int x:s)
    		cout<<"S="<<x<<endl;

    }

}
/*#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n,t;
    cin>>n;
	int v[n];
    for(int i=0;i<n;i++)
    {
        cin>>v[i];
    }
    //sort(v.begin(),v.end());
    int a[100];
    for (int i = 0; i < 100; ++i)
    {
    	a[i]=0;
    }
    for(int i=0;i<n;i++)
    {
        a[v[i]]=a[v[i]]+1;
        cout<<"a="<<v[i]-1<<"="<<a[v[i]-1]<<"\n";
    }
    int max=0,c;
    for(int i=0;i<100-1;i++)
    {
        c=a[i]+a[i+1];
        cout<<"c="<<c<<endl;
        if(c>max)
            max=c;
    }
    cout<<max;
}/**/
/*#include <bits/stdc++.h>

using namespace std;
int main()
{

    int a[3][3],min=1233,c=0;
    int b[8][3][3]={
            {8, 1, 6, 3, 5, 7, 4, 9, 2},
            {6, 1, 8, 7, 5, 3, 2, 9, 4},
            {4, 9, 2, 3, 5, 7, 8, 1, 6},
            {2, 9, 4, 7, 5, 3, 6, 1, 8},
            {8, 3, 4, 1, 5, 9, 6, 7, 2},
            {4, 3, 8, 9, 5, 1, 2, 7, 6},
            {6, 7, 2, 1, 5, 9, 8, 3, 4},
            {2, 7, 6, 9, 5, 1, 4, 3, 8},
            };
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<3;j++)
        {
            cin>>a[i][j];

        }

    }
    for(int k=0;k<8;k++)
    {   c=0;
        for(int i=0;i<3;i++)
        {
            for(int j=0;j<3;j++)
            {
                c=c+abs(a[i][j]-b[k][i][j]);
	//			cout<<"a[i][j]="<<a[i][j]<<"b[k][i][j]="<<b[k][i][j]<<endl;
				//cout<<abs(a[i][j]-b[k][i][j]);
            }
        }
//cout<<"c="<<c<<endl;
        if(min>c)
        {
            min=c;
}
        }
    }
    cout<<min;

*/
/*#include <bits/stdc++.h>

using namespace std;
int main()
{

    int a[3][3];
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<3;j++)
        {
            cin>>a[i][j];
        }

    }

    vector<int> v1;
    vector<int> v2;
    for(int i=0;i<v.size();i++)
    {
        if(v[i]==0){
            v1.push_back(i+1);
            cout<<"v1="<<i+1<<endl;
        }
        else if (v[i]>1) {
            v2.push_back(i+1);
            cout<<"v2="<<i+1<<endl;
        }

    }
    int min=100,c=0,k=0;
    for(int i=0;i<v1.size();i++)
    {
        for(int j=0;j<v2.size();j++)
        {
            if(abs(v1[i]-v2[j])<=min){
                min=abs(v1[i]-v2[j]);
                cout<<"min="<<min<<endl;
                k=j;
            }
        }
        c=c+min;
        v2.erase(v2.begin()+k);
        min=100;
    }
    cout<<c;
}*/
/*#include <bits/stdc++.h>
bool f(int x,int y)
{
        return (x>y)?1:0;
}
using namespace std;
int main()
{
    long b,n,m;
    cin>>b>>n>>m;
    vector<long> v1;
    vector<long> v2;
    long t;
    for(int i=0;i<n;i++)
    {
        cin>>t;
        v1.push_back(t);
    }
    for(int i=0;i<m;i++)
    {
        cin>>t;
        v2.push_back(t);
    }
    sort(v1.begin(),v1.end(),f);
    sort(v2.begin(),v2.end());
    int max=-1;
    for(int i=0,j=0;i<v1.size();i++)
    {
        for(;j<v2.size();j++)
        {

        	if(v1[i]+v2[j]>b)
        		break;
            if(v1[i]+v2[j]<=b && v1[i]+v2[j]>max)
               {
               	 max=v1[i]+v2[j];
               }
        }
    }
    cout<<max;

}*/

/*#include <bits/stdc++.h>

using namespace std;
int main()
{
    int n;
    cin>>n;
    string s;
  //  getline(cin,s);
    cin>>s;
    int level=0,cnt=0;
    bool c=true;
    for(int i=0;i<n;i++)
    {
        if(s[i]=='U')
        {
            c=true;
            level++;
        }
        else if(s[i]=='D')
        {
            c=false;
            level--;
        }
        if(level==0 && c && i!=0)
            cnt++;
    }
    cout<<cnt;
}
*/
/*#include <bits/stdc++.h>

using namespace std;
int main()
{
    int n,t;
    cin>>n;
    vector<int> v;
    for(int i=0;i<n;i++)
    {
        cin>>t;
        v.push_back(t);
    }
    sort(v.begin(),v.end());
    int s=v[0],cnt=1,c=0;
    for(int i=1;i<v.size();i++)
    {
        if(v[i]==s)
        {
            cnt++;
            cout<<"cnt="<<cnt<<endl;
            s=v[i];
        }
        else
        {
            c=c+cnt/2;
            cout<<"c"<<c<<endl;
           	s=v[i];
            cnt=1;
        }
    }
    cout<<c;
}*/
/*#include <bits/stdc++.h>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
    int n,t,max=0;
    vector<int> v;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>t;
        v.push_back(t);
    }
    vector<long int>a(5,0);
    for(int i=0;i<n;i++)
    {
        a[v[i]-1]++;
        //cout<<"type="<<v[i]-1<<a[v[i]-1]<<endl;
    }
    for(int i=0;i<5;i++)
    {
        cout<<"a="<<a[i]<<endl;
        if(max<a[i])
        {
            max=i+1;
      //      cout<<"Max="<<max<<endl;
        }
    }
    cout<<max<<"\n";
}

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int t;
	cin>>t;
	for (int j = 0; j < t; ++j)
	    {
	      		string s;
	      		cin>>s;
	      		int c;
	      		int i = 0;
	      		int k=0;
	         	bool t1=true;
	         	while(i != s.length())
	         	{
	         		c=(s[i]-48);
	         		for(int j=i+1;j<s.length();j++)
	         		{

	         			c=c+(s[j]-48);
	         			//cout<<"C="<<c<<endl;
	         			if(c==10)
	         				{
	         					k=j;
	         				//	cout<<"K="<<k<<endl;
	         					break;
	         				}

	         			if(c>10)
	         				break;
	         		}
	         		if(k<i)
	         		{

	         			cout<<"Not 10-substring friendly\n";
	         			t1=false;
	         			break;
	         		}
	         		i++;
	         	}
	         			if(t1)
	         			{
			         		if(k+1==s.length())
			         			cout<<"It is 10-substring friendly\n";
			         		else
			         			cout<<"Not 10-substring friendly\n";
						}
		}
}

#include <iostream>
#include <climits>
using namespace std;
int main()
{
    int n,m,c=INT_MAX,v=INT_MAX;
    cin>>n>>m;
    int a[n],b[m];
    int k,n1=0;
    int c1[100];
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        if(a[i]<v)
            v=a[i];
    }
    for(int i=0;i<m;i++)
    {
        cin>>b[i];
        if(b[i]<c)
            c=b[i];
    }
    for (int i = v; i <=c ; ++i)
    {	k=0;
    	for (int j = 0; j < n; ++j)
    	{
    		if (i%a[j]==0)
    			k++;

    	}
    	if(k==n)
    	{
    		c1[n1++]=i;

    	}
    }
    int l=0;
    for (int i = 0; i < n1; ++i)
    {
    	k=0;
    	for(int j=0;j<m;j++)
    	{
    		if(b[j]%c1[i]==0)
    			k++;
    	}
    	if(k==m)
    		l++;
    }
    cout<<l;
    return 0;

}
/*#include<iostream>
using namespace std;
void conv(int n){
	if(n<=0)
		printf("%d",n);
	else
		{conv(n/2);
			printf("@%d@", n%2);}
}
int main()
{
	//conv(4);
	float sum=0.0,i=2.0,j=1.0;
	int cnt=0;
	while(i/j>0.0625)
	{
		j=2*j;
		cnt++;
	}
	cout<<cnt;
	int a[]={2,4,6,8,10};
	int *b=a+4,s=0;
	for (int i = 0; i < 5; ++i)
	{
		s=s+*b-i-*(b-i);
		cout<<s;
	}
	cout<<s;
	return 0;
}
*/


    #include <bits/stdc++.h>
    #include<cmath>
    using namespace std;
    int main()
    {
        long t;
        cin>>t;
         while(t--)
         {
            long n;
            cin>>n;
            vector<long> v;
            long q;
            for(int i=0;i<n;i++)
            {
                cin>>q;
                v.push_back(q);
                //cout<<"mithil";
            }

                int i=n/2;
                int j=i-1;
            sort(v.begin(),v.end());
            for(int cnt=0;cnt<n;cnt++)
            {
                if(cnt%2==0)
                  {
                    cout<<v[i];
                    i=i+1;
                  }
                else
                    {
                        cout<<v[j];
                        j=j-1;
                    }
            }
        }

    }


#include <bits/stdc++.h>
    #include<cmath>
    using namespace std;
    int main()
    {
        long t;
        cin>>t;
         while(t--)
         {
            long n;
            cin>>n;
            vector<long> v;
            long q;
            for(int i=0;i<n;i++)
            {
                cin>>q;
                v.push_back(q);
                //cout<<"mithil";
            }

                int i=n/2-1;
                int j=i-1;

            sort(v.begin(),v.end());
            cout<<v[i];
            for(int cnt=0;cnt<n-1;cnt++)
            {
                if(cnt%2==0)
                  {
                    i=i+1;
                    cout<<v[i];

                  }
                else
                    {
                        cout<<v[j];
                        j=j-1;
                    }
            }
        }

    }


    #include <bits/stdc++.h>
    #include<cmath>
    using namespace std;
    int main()
    {
        long t;
        cin>>t;
         while(t--)
         {
            long n;
            cin>>n;
            vector<long> v;
            long q;
            for(int i=0;i<n;i++)
            {
                cin>>q;
                v.push_back(q);
                //cout<<"mithil";
            }

                int k=n/2-1;

            sort(v.begin(),v.end());

            for(int cnt=0;cnt<n;cnt++)
            {
                if(cnt%2==0)
                  {

                    cout<<v[k-(cnt+1)/2]<<' ';

                  }
                else
                    {
                        cout<<v[k+cnt/2]<<' ';

                    }
            }
        }

    }


    #include <bits/stdc++.h>
    #include<cmath>
    using namespace std;
    int main()
    {
        long t;
        cin>>t;
         while(t--)
         {
            long n;
            cin>>n;
            vector<long> v;
            long q;
            for(int i=0;i<n;i++)
            {
                cin>>q;
                v.push_back(q);
                //cout<<"mithil";
            }

                int i=n/2-1;
                int j=i-1;

            sort(v.begin(),v.end());
            cout<<v[i];
            for(int cnt=0;cnt<n-1;cnt++)
            {
                if(cnt%2==0)
                  {
                    i=i+1;
                    cout<<v[i];

                  }
                else
                    {
                        cout<<v[j];
                        j=j-1;
                    }
            }
        }

    }
/*string s;
    cin>>s;
  //  cout<<s.length();
    int row,col;
    if(sqrt(s.length())-floor(sqrt(s.length()))==0)
       {
        row=sqrt(s.length());
        col=sqrt(s.length());
       }
    else
        {

         row=sqrt(s.length());
            col=sqrt(s.length())+1;
       }

    if(row*col<s.length()&&row!=col)
        row=row+1;
//cout<<row<<col;
    char c[row][col];
    for(int i=0,k=0;i<row;i++)
    {
        for(int j=0;j<col;j++)
        {
            if(s[k]!='\0')
                c[i][j]=s[k];
            else
                c[i][j]='\0';
            k++;
        }
    }
    //int a[3][3]={{1,2,3},{4,5,6}};
    for(int i=0;i<col;i++)
    {
        for(int j=0;j<row;j++)
        {
            if(c[j][i]=='\0')
                continue;
            cout<<c[j][i];

        }
        cout<<" ";
    }
*/
/*#include <bits/stdc++.h>

using namespace std;
int main()
{
    int n,m,cnt=0,max=0,cnt2=1;
    cin>>n>>m;
    vector<string> vec;
    for(int i=0;i<n;i++)
    {
        string s;
        cin>>s;
        vec.push_back(s);
    }
    for(int i=0;i<n;i++)
    {
        for(int j=i+1;j<n;j++)
        {
            cnt=0;
            for(int z=0;z<m;z++)
            {
               if((vec[i][z]-48)||(vec[j][z]-48))
                            cnt++;
            }

            if(cnt>=max)
            {
                if(cnt>max)
                    cnt2=1;

                if(j!=1&&cnt==max)
                {
                    cnt2++;
                    cout<<i<<j<<"cnt2="<<cnt2<<endl;
                }
                max=cnt;

            }
        }

    }
    cout<<max<<"\n"<<cnt2;
}
*/

/*#include <bits/stdc++.h>

using namespace std;

//vector<string> split_string(string);

// Complete the queensAttack function below.
//int queensAttack(int n, int k, int r_q, int c_q, vector<vector<int>> obstacles) {

//}
int min(int a,int b)
{
    return (a<b)?a:b;
}
int main()
{
   long n,k,r_q,c_q;
   cin>>n>>k;
   int r[k],c[k];
   cin>>r_q>>c_q;
   int a1=c_q-1,a2=n-c_q,a3=n-r_q,a4=r_q-1,a5=min(n-r_q,c_q-1),a6=min(n-r_q,n-c_q),a7=min(r_q-1,c_q-1),a8=min(r_q-1,n-c_q);
   ;
   for(int i=0;i<k;i++)
    {
        cin>>r[i]>>c[i];

        if((r[i]==r_q)&&(c_q>c[i])&&abs(c_q-c[i]-1)<=a1)
           {
               a1=abs(c_q-c[i]-1);
              // cout<<"a1="<<a1<<endl;
           }
        else if((r[i]==r_q)&&(c_q<c[i])&&abs(c[i]-c_q-1)<=a2)
           {
               a2=abs(c[i]-c_q-1);
            //   cout<<"a2="<<a2<<endl;
           }
        else if((r[i]>r_q)&&(c[i]==c_q)&&abs(r[i]-r_q-1)<=a3)
            {
                a3=abs(r[i]-r_q-1);
               // cout<<"a3="<<a3<<endl;
            }
        else if((r_q>r[i])&&(c[i]==c_q)&&abs(r_q-r[i]-1)<=a4)
           {
               a4=abs(r_q-r[i]-1);
             //  cout<<"a4="<<a4<<endl;
           }
        else if((r[i]>r_q)&&(c[i]<c_q)&&(abs(r[i]-r_q)==abs(c[i]-c_q))&&abs(r[i]-r_q-1)<=a5)
            {
                a5=abs(r[i]-r_q-1);
             //  cout<<"a5="<<a5<<endl;
            }
        else if((r[i]>r_q)&&(c[i]>c_q)&&(abs(r[i]-r_q)==abs(c[i]-c_q))&&abs(r[i]-r_q-1)<=a6)
            {
                a6=abs(r[i]-r_q-1);
              // cout<<"a6="<<a6<<endl;
            }
        else if((r[i]<r_q)&&(c[i]<c_q)&&(abs(r[i]-r_q)==abs(c[i]-c_q))&&abs(r_q-r[i]-1)<=a7)
            {
                a7=abs(r_q-r[i]-1);
               // cout<<"a7="<<a7<<endl;
            }
        else if((r[i]<r_q)&&(c[i]>c_q)&&(abs(r[i]-r_q)==abs(c[i]-c_q))&&abs(c[i]-c_q-1)<=a8)
           {
               a8=abs(c[i]-c_q-1);
             //  cout<<"a8="<<a8<<endl;
           }
    }
    cout<<a1+a2+a3+a4+a5+a6+a7+a8;
}
*/

/*#include <bits/stdc++.h>

using namespace std;
int main()
{
    int n,t;
    cin>>n;
    vector<int> v;

    for(int i=0;i<n;i++)
    {
        cin>>t;
        v.push_back(t);

    }
    t=*max_element(v.begin(),v.end());
    int a[t+1];
    for(int i=0;i<t+1;i++)
        a[i]=0;
    for(int i=0;i<v.size();i++)
    {
        a[v[i]]++;
    }
    int max=0;
    for(int i=0;i<t+1;i++)
    {
       cout<<"a="<<a[i]<<endl;
        if(a[i]>max)
            max=a[i];
        cout<<"max="<<max<<endl;

    }

    cout<<n-max;

}*/

/*#include <bits/stdc++.h>

using namespace std;
int main()
{
    long n,cnt=0,cnt1=0;
    string s;
    cin>>s;
    cin>>n;
    long k=n/s.length();s
    for(int i=0;i<s.length();i++)
    {
        if(s[i]=='a')
            cnt++;
    }
    if(k*s.length()!=n)
        for(int i=0;i<n-k*s.length();i++)
        {
                if(s[i]=='a')
                    cnt1++;

        }
    cout<<k*cnt+cnt1;
}*/
/*#include <bits/stdc++.h>

int minelement(int vect[],int n)
{
    int min=INT_MAX;
    for(int i=0;i<n;i++)
    {
        if(vect[i]<=min&&vect[i]>0)
        {
            min=vect[i];
        }
    }
    return min;
}
using namespace std;
int main()
{
    int n,t;
    cin>>n;
    //int b[n];
    int a[n];
    for(int i=0;i<n;i++)
        {
            cin>>a[i];
            //a.push_back(t);

        }
        int cnt;
    for(int i=0;i<n;i++)
    {
        cnt=0;
        t=minelement(a,n);
        if(t==INT_MAX)
            break;
        //cout<<"t="<<t<<endl;
        for(int j=0;j<n;j++)
        {
            a[j]=a[j]-t;
            if(a[j]>=0)
                cnt++;
          //  cout<<"a="<<a[j]<<endl;

        }

        cout<<cnt<<"\n";
    }
*/
/*#include <bits/stdc++.h>

using namespace std;
bool sqr(int a)
{
    if(a==int(sqrt(a))*int(sqrt(a)))
       {
            return true;
          //  cout<<"TRUE\n";
       }
    else {
        return false;
        //cout<<"FALSE\n";
    }
}
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int a,b;
        cin>>a>>b;
        int i=a;
        int cnt=0;
        while(i<=b)
        {
            bool t1=sqr(i);
            if(t1)
            {
                i=i+2*int(sqrt(i))+1;
                cnt++;
            }
            else {
                i++;
            }
         //   cout<<"asdsadd\n";
        }
        cout<<cnt<<"\n";
    }
}*/
/*#include <bits/stdc++.h>
using namespace std;
int main()
{
    string s,t;
    int k;
    cin>>s;
    cin>>t;
    cin>>k;
    int i=0;
    while(t[i]!='\0')
    {
        if(t[i]!=s[i])
            break;
        i++;
    }
    if(s.size()>=t.size())
    {
        k=k-s.size()-t.size()+2*i;
        if(k>=0)
            cout<<"Yes";
        else
            cout<<"No";

    }
    else
    {
        k=k-i-t.size();
        if(k>=0)
            cout<<"Yes";
        else
            cout<<"No";
    }

}*/
/*#include <bits/stdc++.h>

using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n,c,k,cnt=0;
        cin>>n;
        c=n;
        while(c)
        {
            k=c%10;
            c=c/10;
            if(n%k==0)
                if(k!=0)
                    cnt++;
        }
        cout<<cnt<<"\n";
    }
}*/
/*#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int a[n];
    for(int i=0;i<n;i++)
        cin>>a[i];
        int c,k;
    for(int i=0;i<n;i++,c++)
    {   c=i+1;
        for(int j=0;j<n;j++)
        {
            if(a[j]==c)
            {
                k=j+1;
                break;
            }
        }
        for(int m=0;m<n;m++)
        {
            if(a[m]==k)
            {
                cout<<m+1<<endl;
                break;
            }
        }

    }
}*/
/*#include <bits/stdc++.h>

using namespace std;
int main()
{
    int n,k,q,t;
    cin>>n>>k>>q;
    int a[n];
    for(int i=0;i<n;i++)
        cin>>a[i];
    for(int i=0;i<k;i++)
    {
        t=a[n-1];
        for(int j=n-1;j>0;j--)
        {
            a[j]=a[j-1];
            cout<<"a:"<<a[j]<<endl;
        }
        a[0]=t;
    }
    for(int i=0;i<n;i++)
        cout<<"a="<<a[i]<<endl;
    int m;
    for(int i=0;i<q;i++)
    {
        cin>>m;
        cout<<a[m]<<"\n";
    }
}*/
/*#include <bits/stdc++.h>
using namespace std;
int main()
{   int t;
    cin>>t;
    while(t--)
    {
        int n,c,s;
        cin>>n>>c>>s;
        int m=c%n;
        cout<<"m="<<m<<endl;
        if(n==m)
            cout<<s-1<<"\n";
        else if(s+m-1<=n)
            cout<<s+m-1<<"\n";
        else
            cout<<(s+m)%n-1<<"\n";
    }

}

/* #include <bits/stdc++.h>
using namespace std;
int reverse(int k)
{352926151 380324688 94730870
556065259 615709967 156417592

    int m=k,cnt=0;
    while(m!=0)
    {
        m=m/10;
        cnt++;
    }
    m=0;
    for(int i=cnt-1;i>=0;i--)
    {
        m=m+pow(10,i)*(k%10);
        k=k/10;
    }
    cout<<"m="<<m<<endl;
    return m;
}
int main()
{
    int i,j,k;
    cin>>i>>j>>k;
    int cnt=0;
    for(int z=i;z<=j;z++)
    {
        cout<<"z="<<z<<endl;
        if(abs(z-reverse(z))%k==0)
            cnt++;
    }
    cout<<cnt;
}*/
/*#include <bits/stdc++.h>
#include<vector>
int binary_search(int n,long a[],int rank[],int low,int high)
{

    int m;
    while(low<=high)
    {
        m=low+(high-low)/2;
        if(a[m]==n)
            break;
        else if(a[m]>n)
            low=m+1;
        else
            high=m-1;
    }
    if(n>a[m])
        m=rank[m];
    else if(n==a[m])
        m=rank[m];
    else
        m=rank[m]+1;

    return m;

}
bool f(int x,int y)
{
    return (x>y)?1:0;
}
using namespace std;
int main()
{
    int n;
    cin>>n;
    long score[n];
    for(int i=0;i<n;i++)
    {
        cin>>score[i];

    }
    int m;
    cin>>m;
    long alice[m];
    int rank[n];
    for(int i=0;i<m;i++)
    {
        cin>>alice[i];

    }
    for(int i=0;i<=n-1;i++)
    {
        if(i==0)
            rank[i]=1;
        if(score[i+1]==score[i])
            rank[i+1]=rank[i];
        else
            rank[i+1]=rank[i]+1;
    }
    int m1;
    vector<int> output;
    for(int i=0;i<m;i++)
    {
        m1=binary_search(alice[i],score,rank,0,n-1);
        output.push_back(m1);
    }

    for(int x:output)
        cout<<x<<"\n";

}*/

/*#include <bits/stdc++.h>
bool f(int x,int y)
{
	return (x>y)?1:0;
}
using namespace std;
int main()
{
    int n,t;
    cin>>n;
    vector<long> s;
    for(int i=0;i<n;i++)
    {
        cin>>t;
        s.push_back(t);
    }
    int m;
    cin>>m;
    vector<long> a;
    vector<int> v;
    vector<int> rank;
    for(int i=0;i<m;i++)
    {
        cin>>t;
        a.push_back(t);
    }
    rank.push_back(1);
    for(int i=1;i<s.size();i++)
    {
    	if(s[i]==s[i-1])
    		rank[i]=rank[i-1];
    	else
    		rank[i]=rank[i-1]+1;
    }
    int index;
    for(int i=0;i<a.size();i++)
    {
    	if(a[i]>=s[0])
    		v.push_back(1);
    	else if(a[i]<s[s.size()-1])
    		v.push_back(rank[s.size()-1]+1);
    	else
    		{
    			index=binary_search(a[i],s);
    			v.push_back(rank[index]);
    		}
    }
    for(int x:v)
    	cout<<x<<endl;
}*/
/*#include <bits/stdc++.h>
bool f(int x,int y)
{
	return (x>y)?1:0;
}
using namespace std;
int main()
{
    int n,t;
    cin>>n;
    vector<long> s;
    for(int i=0;i<n;i++)
    {
        cin>>t;
        s.push_back(t);
    }
    int m,cnt=1,k=1,j;
    cin>>m;
    vector<long> a;
    vector<int> v;
    for(int i=0;i<m;i++)
    {
        cin>>t;
        a.push_back(t);
    }
    for(int i=0;i<a.size();i++)
    {
    	//s.push_back(a[i]);
    	//sort(s.begin(),s.end(),f);
    	cnt=1;
    	for(j=0;j<s.size();j++)
    	{
    		//cout<<"j="<<j<<endl;
    		//cout<<"score="<<s[j]<<endl;
    		if(s[j]!=s[j-1]&&j!=0)
    			cnt=cnt+1;

    		if(a[i]>s[j])
    			{
 	   				if(a[i]==s[j-1])
 	   					cnt=cnt-1;
 	   				v.push_back(cnt);
    				k=2;
    				break;

    			}

    	//cout<<"rank"<<cnt<<endl;
    	}
    	if(k==1&&j==s.size())
    	{
    		if(a[i]==s[s.size()-1])
    			v.push_back(cnt);
    		else
    			v.push_back(cnt+1);
    	}
    	//s.erase(s.begin()+k);
    	/*for(int x:s)
    		cout<<"S="<<x<<endl;

    }

}
/*#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n,t;
    cin>>n;
	int v[n];
    for(int i=0;i<n;i++)
    {
        cin>>v[i];
    }
    //sort(v.begin(),v.end());
    int a[100];
    for (int i = 0; i < 100; ++i)
    {
    	a[i]=0;
    }
    for(int i=0;i<n;i++)
    {
        a[v[i]]=a[v[i]]+1;
        cout<<"a="<<v[i]-1<<"="<<a[v[i]-1]<<"\n";
    }
    int max=0,c;
    for(int i=0;i<100-1;i++)
    {
        c=a[i]+a[i+1];
        cout<<"c="<<c<<endl;
        if(c>max)
            max=c;
    }
    cout<<max;
}/**/
/*#include <bits/stdc++.h>

using namespace std;
int main()
{

    int a[3][3],min=1233,c=0;
    int b[8][3][3]={
            {8, 1, 6, 3, 5, 7, 4, 9, 2},
            {6, 1, 8, 7, 5, 3, 2, 9, 4},
            {4, 9, 2, 3, 5, 7, 8, 1, 6},
            {2, 9, 4, 7, 5, 3, 6, 1, 8},
            {8, 3, 4, 1, 5, 9, 6, 7, 2},
            {4, 3, 8, 9, 5, 1, 2, 7, 6},
            {6, 7, 2, 1, 5, 9, 8, 3, 4},
            {2, 7, 6, 9, 5, 1, 4, 3, 8},
            };
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<3;j++)
        {
            cin>>a[i][j];

        }

    }
    for(int k=0;k<8;k++)
    {   c=0;
        for(int i=0;i<3;i++)
        {
            for(int j=0;j<3;j++)
            {
                c=c+abs(a[i][j]-b[k][i][j]);
	//			cout<<"a[i][j]="<<a[i][j]<<"b[k][i][j]="<<b[k][i][j]<<endl;
				//cout<<abs(a[i][j]-b[k][i][j]);
            }
        }
//cout<<"c="<<c<<endl;
        if(min>c)
        {
            min=c;
}
        }
    }
    cout<<min;

*/
/*#include <bits/stdc++.h>

using namespace std;
int main()
{

    int a[3][3];
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<3;j++)
        {
            cin>>a[i][j];
        }

    }

    vector<int> v1;
    vector<int> v2;
    for(int i=0;i<v.size();i++)
    {
        if(v[i]==0){
            v1.push_back(i+1);
            cout<<"v1="<<i+1<<endl;
        }
        else if (v[i]>1) {
            v2.push_back(i+1);
            cout<<"v2="<<i+1<<endl;
        }

    }
    int min=100,c=0,k=0;
    for(int i=0;i<v1.size();i++)
    {
        for(int j=0;j<v2.size();j++)
        {
            if(abs(v1[i]-v2[j])<=min){
                min=abs(v1[i]-v2[j]);
                cout<<"min="<<min<<endl;
                k=j;
            }
        }
        c=c+min;
        v2.erase(v2.begin()+k);
        min=100;
    }
    cout<<c;
}*/
/*#include <bits/stdc++.h>
bool f(int x,int y)
{
        return (x>y)?1:0;
}
using namespace std;
int main()
{
    long b,n,m;
    cin>>b>>n>>m;
    vector<long> v1;
    vector<long> v2;
    long t;
    for(int i=0;i<n;i++)
    {
        cin>>t;
        v1.push_back(t);
    }
    for(int i=0;i<m;i++)
    {
        cin>>t;
        v2.push_back(t);
    }
    sort(v1.begin(),v1.end(),f);
    sort(v2.begin(),v2.end());
    int max=-1;
    for(int i=0,j=0;i<v1.size();i++)
    {
        for(;j<v2.size();j++)
        {

        	if(v1[i]+v2[j]>b)
        		break;
            if(v1[i]+v2[j]<=b && v1[i]+v2[j]>max)
               {
               	 max=v1[i]+v2[j];
               }
        }
    }
    cout<<max;

}*/

/*#include <bits/stdc++.h>

using namespace std;
int main()
{
    int n;
    cin>>n;
    string s;
  //  getline(cin,s);
    cin>>s;
    int level=0,cnt=0;
    bool c=true;
    for(int i=0;i<n;i++)
    {
        if(s[i]=='U')
        {
            c=true;
            level++;
        }
        else if(s[i]=='D')
        {
            c=false;
            level--;
        }
        if(level==0 && c && i!=0)
            cnt++;
    }
    cout<<cnt;
}
*/
/*#include <bits/stdc++.h>

using namespace std;
int main()
{
    int n,t;
    cin>>n;
    vector<int> v;
    for(int i=0;i<n;i++)
    {
        cin>>t;
        v.push_back(t);
    }
    sort(v.begin(),v.end());
    int s=v[0],cnt=1,c=0;
    for(int i=1;i<v.size();i++)
    {
        if(v[i]==s)
        {
            cnt++;
            cout<<"cnt="<<cnt<<endl;
            s=v[i];
        }
        else
        {
            c=c+cnt/2;
            cout<<"c"<<c<<endl;
           	s=v[i];
            cnt=1;
        }
    }
    cout<<c;
}*/
/*#include <bits/stdc++.h>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
    int n,t,max=0;
    vector<int> v;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>t;
        v.push_back(t);
    }
    vector<long int>a(5,0);
    for(int i=0;i<n;i++)
    {
        a[v[i]-1]++;
        //cout<<"type="<<v[i]-1<<a[v[i]-1]<<endl;
    }
    for(int i=0;i<5;i++)
    {
        cout<<"a="<<a[i]<<endl;
        if(max<a[i])
        {
            max=i+1;
      //      cout<<"Max="<<max<<endl;
        }
    }
    cout<<max<<"\n";
}

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int t;
	cin>>t;
	for (int j = 0; j < t; ++j)
	    {
	      		string s;
	      		cin>>s;
	      		int c;
	      		int i = 0;
	      		int k=0;
	         	bool t1=true;
	         	while(i != s.length())
	         	{
	         		c=(s[i]-48);
	         		for(int j=i+1;j<s.length();j++)
	         		{

	         			c=c+(s[j]-48);
	         			//cout<<"C="<<c<<endl;
	         			if(c==10)
	         				{
	         					k=j;
	         				//	cout<<"K="<<k<<endl;
	         					break;
	         				}

	         			if(c>10)
	         				break;
	         		}
	         		if(k<i)
	         		{

	         			cout<<"Not 10-substring friendly\n";
	         			t1=false;
	         			break;
	         		}
	         		i++;
	         	}
	         			if(t1)
	         			{
			         		if(k+1==s.length())
			         			cout<<"It is 10-substring friendly\n";
			         		else
			         			cout<<"Not 10-substring friendly\n";
						}
		}
}

#include <iostream>
#include <climits>
using namespace std;
int main()
{
    int n,m,c=INT_MAX,v=INT_MAX;
    cin>>n>>m;
    int a[n],b[m];
    int k,n1=0;
    int c1[100];
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        if(a[i]<v)
            v=a[i];
    }
    for(int i=0;i<m;i++)
    {
        cin>>b[i];
        if(b[i]<c)
            c=b[i];
    }
    for (int i = v; i <=c ; ++i)
    {	k=0;
    	for (int j = 0; j < n; ++j)
    	{
    		if (i%a[j]==0)
    			k++;

    	}
    	if(k==n)
    	{
    		c1[n1++]=i;

    	}
    }
    int l=0;
    for (int i = 0; i < n1; ++i)
    {
    	k=0;
    	for(int j=0;j<m;j++)
    	{
    		if(b[j]%c1[i]==0)
    			k++;
    	}
    	if(k==m)
    		l++;
    }
    cout<<l;
    return 0;

}
/*#include<iostream>
using namespace std;
void conv(int n){
	if(n<=0)
		printf("%d",n);
	else
		{conv(n/2);
			printf("@%d@", n%2);}
}
int main()
{
	//conv(4);
	float sum=0.0,i=2.0,j=1.0;
	int cnt=0;
	while(i/j>0.0625)
	{
		j=2*j;
		cnt++;
	}
	cout<<cnt;
	int a[]={2,4,6,8,10};
	int *b=a+4,s=0;
	for (int i = 0; i < 5; ++i)
	{
		s=s+*b-i-*(b-i);
		cout<<s;
	}
	cout<<s;
	return 0;
}
*/


#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
#define  pb        push_back
#define  ff        first
#define  ss        second
#define  mk        make_pair
#define  all(v)    v.begin(),v.end()
#define  allr(v)   v.rbegin(),v.rend()
#define  sz        s.size()
#define  FastRead  ios_base::sync_with_stdio(false);cin.tie(0),cout.tie(0)
const int MAX=100010;
//for(ll i=0; i<n; i++)

int main()
{
    FastRead;
    ll t; cin>>t;
    while(t--){

        vector<ll>v,w,u;
        ll n,a;
        cin>>n;
        for(ll i=0; i<n; i++){
            cin>>a;
            v.pb(a);
        }
        sort(all(v));

        for(ll i=0; i<n/2; i++)u.pb(v[i]);
        for(ll i=n/2; i<n; i++)w.pb(v[i]);
        reverse(all(u));
        for(ll i=0; i<n/2; i++)cout<<w[i]<<" "<<u[i]<<" ";
        cout<<endl;

    }

  return 0;
}


#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
#define  pb        push_back
#define  ff        first
#define  ss        second
#define  mk        make_pair
#define  all(v)    v.begin(),v.end()
#define  allr(v)   v.rbegin(),v.rend()
#define  sz        s.size()
#define  FastRead  ios_base::sync_with_stdio(false);cin.tie(0),cout.tie(0)
const int MAX=100010;
//for(ll i=0; i<n; i++)

int main()
{
    FastRead;
    ll t; cin>>t;
    while(t--){

        vector<ll>v,w,u;
        ll n,a;
        cin>>n;
        for(ll i=0; i<n; i++){
            cin>>a;
            v.pb(a);
        }
        sort(all(v));

        for(ll i=0; i<n/2; i++)u.pb(v[i]);
        for(ll i=n/2; i<n; i++)w.pb(v[i]);
        reverse(all(u));
        for(ll i=0; i<n/2; i++)cout<<w[i]<<" "<<u[i]<<" ";
        cout<<'\n';

    }

  return 0;
}


#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
#define  pb        push_back
#define  ff        first
#define  ss        second
#define  mk        make_pair
#define  all(v)    v.begin(),v.end()
#define  allr(v)   v.rbegin(),v.rend()
#define  sz        s.size()
#define  FastRead  ios_base::sync_with_stdio(false);cin.tie(0),cout.tie(0)
const int MAX=100010;
//for(ll i=0; i<n; i++)

int main()
{
    FastRead;
    int t; cin>>t;
    while(t--){

        vector<ll>v,w,u;
        int n,a;
        cin>>n;
        for(int i=0; i<n; i++){
            cin>>a;
            v.pb(a);
        }
        sort(all(v));

        for(int i=0; i<n/2; i++)u.pb(v[i]);
        int x=n;
        if(x&1)x--;
        for(int i=n/2; i<x; i++)w.pb(v[i]);
        reverse(all(u));
        for(int i=0; i<n/2; i++)cout<<w[i]<<" "<<u[i]<<" ";
        if(n&1)cout<<v[n-1];
        cout<<endl;

    }

  return 0;
}


#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
#define  pb        push_back
#define  ff        first
#define  ss        second
#define  mk        make_pair
#define  all(v)    v.begin(),v.end()
#define  allr(v)   v.rbegin(),v.rend()
#define  sz        s.size()
#define  FastRead  ios_base::sync_with_stdio(false);cin.tie(0),cout.tie(0)
const int MAX=100010;
//for(ll i=0; i<n; i++)

int main()
{
    FastRead;
    int t; cin>>t;
    while(t--){

        vector<ll>v,w,u;
        int n,a;
        cin>>n;
        for(int i=0; i<n; i++){
            cin>>a;
            v.pb(a);
        }
        sort(all(v));

        for(int i=0; i<n/2; i++)u.pb(v[i]);
        for(int i=n/2; i<n; i++)w.pb(v[i]);
        reverse(all(u));
        for(int i=0; i<n/2; i++)cout<<w[i]<<" "<<u[i]<<" ";
        cout<<endl;

    }

  return 0;
}


#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
#define  pb        push_back
#define  ff        first
#define  ss        second
#define  mk        make_pair
#define  all(v)    v.begin(),v.end()
#define  allr(v)   v.rbegin(),v.rend()
#define  sz        s.size()
#define  VAI       ios_base::sync_with_stdio(false);cin.tie(0),cout.tie(0)
const int MAX=100010;
//for(ll i=0; i<n; i++)

int main()
{
    VAI;
    ll t; cin>>t;
    while(t--){

        vector<ll>v,w,u;
        ll n,a;
        cin>>n;
        for(ll i=0; i<n; i++){
            cin>>a;
            v.pb(a);
        }
        sort(all(v));

        for(ll i=0; i<n/2; i++)u.pb(v[i]);
        for(ll i=n/2; i<n; i++)w.pb(v[i]);
        reverse(all(u));
        for(ll i=0; i<n/2; i++)cout<<w[i]<<" "<<u[i]<<" ";
        cout<<'\n';

    }

  return 0;
}


#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
#define  pb        push_back
#define  ff        first
#define  ss        second
#define  mk        make_pair
#define  all(v)    v.begin(),v.end()
#define  allr(v)   v.rbegin(),v.rend()
#define  sz        s.size()
#define  FastRead  ios_base::sync_with_stdio(false);cin.tie(0),cout.tie(0)
const int MAX=100010;
//for(ll i=0; i<n; i++)

int main()
{
    FastRead;
    ll t; cin>>t;
    while(t--){

        vector<ll>v,w,u;
        ll n,a;
        cin>>n;
        for(ll i=0; i<n; i++){
            cin>>a;
            v.pb(a);
        }
        sort(all(v));

        for(ll i=0; i<n/2; i++)u.pb(v[i]);
        for(ll i=n/2; i<n; i++)w.pb(v[i]);
        reverse(all(u));
        for(ll i=0; i<n/2; i++)cout<<w[i]<<" "<<u[i]<<" ";
        cout<<"\n";

    }

  return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define int long long
bool cmp(int a,int b)
{
	return (a-b)<(b-a);
}
signed main()
{
	int t;
	cin>>t;
	while(t--)
	{
		int n;
		cin>>n;
		int a[n+1]={0};
		for(int i=1;i<=n;i++)
		{
			int x;
			cin>>x;
			a[i]=x;
		}
		sort(a+1,a+n+1,cmp);
		for(int i=1;i<=n;i++)
		{
			cout<<a[i]<<" ";
		}
		cout<<"\n";
	}
	exit(0);
}


#include <bits/stdc++.h>

using namespace std;
#define int long long

signed main()
{
    int t,n;
    cin>>t;
    while (t--)
    {
        cin>>n;
        vector<int>a(n);
        for (int i=0;i<n;++i)
        {
            cin>>a[i];
        }
        vector<int> kq(n);
        sort(a.begin(),a.end());
        int l=1,r=n;
        while (l-r<=0)
        {
            kq.push_back(a[l]);
            if (l-r!=0)
                kq.push_back(a[r]);
            l++;
            r--;
        }
        for (int i=kq.size()-1;i>=0;--i)
            cout<<kq[i]<<" ";
        cout<<"\n";
    }
    exit(0);
}


#include <bits/stdc++.h>

using namespace std;
#define int long long
signed main()
{
       int t;
       int a[1000001]={0};
       int n;
       cin>>t;
       while (t--)
       {
           cin>>n;
           for (int i=1;i<=n;i++)
                cin>>a[i];
           sort(a+1,a+n+1);
           int tm =0;
           if (!(n%2))
           {
               for (int i=1; i<=n/2;i++)
               {
                    int x= a[n/2-i+1] ;
                    int y= a[n/2+i];
                    if (abs(x-tm) - abs(y-tm) < 0)
                    {
                        cout<<x<<" "<<y<<" ";
                        tm =y;
                    }
                    else
                    {
                        cout<<y<<" "<<x<<" ";
                        tm =x;
                    }
                }
            }
            else
            {
                cout<<a[n/2+1]<<" ";
                for (int i=1; i<=n/2;i++)
                {
                    int x= a[n/2-i+1] ;
                    int y= a[n/2+i+1];
                    if (abs(x-tm) - abs(y-tm) < 0)
                    {
                        cout<<x<<" "<<y<<" ";
                        tm =y;
                    }
                    else
                    {
                        cout<<y<<" "<<x<<" ";
                        tm =x;
                    }
                }
            }
            cout<<"\n";
        }
    exit(0);
}


#include <bits/stdc++.h>

using namespace std;
#define int long long

signed main()
{
    int t,n;
    cin>>t;
    while (t--)
    {
        cin>>n;
        vector<int>a(n+1,0);
        for (int i=0;i<n;++i)
        {
            cin>>a[i];
        }
        vector<int> kq(n+1);
        sort(a.begin(),a.end());
        int l=1,r=n;
        while (l-r<=0)
        {
            kq.push_back(a[l]);
            if (l-r!=0)
                kq.push_back(a[r]);
            l++;
            r--;
        }
        for (int i=kq.size()-1;i>=0;--i)
            cout<<kq[i]<<" ";
        cout<<"\n";
    }
    exit(0);
}


#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
    int t;
    cin >> t;
    while(t--){
        int n;
        cin >> n;
        vector <int> a(n);
        for (int i = 0; i < n; i++){
            cin >> a[i];
        }
        sort(a.begin(), a.end());
        vector <int> o(n+1);
        if (!(n % 2)){
            for (int i = 0; i < n - i - 1; i ++){
                o.push_back(a[i]);
                o.push_back(a[n-i-1]);
            }
        } else {
            for (int i = 0; i <= n - i - 1; i ++){
                if (!(i - n + i + 1)){
                    o.push_back(a[i]);
                    break;
                }
                o.push_back(a[i]);
                o.push_back(a[n-i-1]);
            }
        }
        for (int i = n - 1; i >= 0; i--){
            cout << o[i] << " ";
        }
        cout << "\n";
    }
    exit(0);
}


#include <bits/stdc++.h>

using namespace std;
#define int long long

signed main()
{
    int t,n;
    cin>>t;
    while (t--)
    {
        cin>>n;
        vector<int>a;
        for (int i=0;i<n;++i)
        {
            cin>>a[i];
        }
        vector<int> kq;
        sort(a.begin(),a.end());
        int l=1,r=n;
        while (l-r<=0)
        {
            kq.push_back(a[l]);
            if (l-r!=0)
                kq.push_back(a[r]);
            l++;
            r--;
        }
        for (int i=kq.size()-1;i>=0;--i)
            cout<<kq[i]<<" ";
        cout<<"\n";
    }
    exit(0);
}


#include <bits/stdc++.h>

using namespace std;
#define int long long

signed main()
{
    int t,n;
    cin>>t;
    while (t--)
    {
        cin>>n;
        vector<int>a(n);
        for (int i=0;i<n;++i)
        {
            cin>>a[i];
        }
        vector<int> kq;
        sort(a.begin(),a.end());
        int l=1,r=n;
        while (l-r<=0)
        {
            kq.push_back(a[l]);
            if (l-r!=0)
                kq.push_back(a[r]);
            l++;
            r--;
        }
        for (int i=kq.size()-1;i>=0;--i)
            cout<<kq[i]<<" ";
        cout<<"\n";
    }
    exit(0);
}


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

signed main()
{
	int t;
	cin>>t;
	while(t--)
	{
		int n;
		cin>>n;
		int a[n+1],b[n+1];
		for(int i=1;i<=n;i++)
		{
			cin>>a[i];
		}
		sort(a+1,a+n+1);
		int id=n;
		for(int i=1;i<=n/2;i++)
		{
			b[id]=a[n-i+1];
			id--;
			b[id]=a[i];
			id--;
		}
		if(n%2)
		{
			b[id]=a[n/2];
		}
		for(int i=1;i<=n;i++)
		{
			cout<<b[i]<<" ";
		}
		cout<<"\n";
	}
	exit(0);
}


#include <bits/stdc++.h>

using namespace std;
#define int long long

signed main()
{
    int t,n;
    vector<int>a(100001,0);
    cin>>t;
    while (t--)
    {
        cin>>n;
        for (int i=0;i<n;++i)
        {
            cin>>a[i];
        }
        vector<int> kq;
        sort(a.begin(),a.end());
        int l=1,r=n;
        while (l-r<=0)
        {
            kq.push_back(a[l]);
            if (l-r!=0)
                kq.push_back(a[r]);
            l++;
            r--;
        }
        for (int i=kq.size()-1;i>=0;--i)
            cout<<kq[i]<<" ";
        cout<<"\n";
    }
    exit(0);
}


#include <bits/stdc++.h>

using namespace std;
#define int long long

signed main()
{
    int t,n;
    cin>>t;
    while (t--)
    {
        cin>>n;
        int a[n];
        for (int i=0;i<n;++i)
        {
            cin>>a[i];
        }
        vector<int> kq;
        sort(a,a+n);
        int l=1,r=n;
        while (l<=r)
        {
            kq.push_back(a[l]);
            if (l-r!=0)
                kq.push_back(a[r]);
            l++;
            r--;
        }
        for (int i=kq.size()-1;i>=0;--i)
            cout<<kq[i]<<" ";
        cout<<"\n";
    }
    exit(0);
}


#include <bits/stdc++.h>

using namespace std;
#define int long long

signed main()
{
    int t,n;
    cin>>t;
    while (t--)
    {
        cin>>n;
        int a[n+1];
        for (int i=1;i<=n;++i)
        {
            cin>>a[i];
        }
        vector<int> kq;
        sort(a+1,a+1+n);
        int l=1,r=n;
        while (l<=r)
        {
            kq.push_back(a[l]);
            if (l-r!=0)
                kq.push_back(a[r]);
            l++;
            r--;
        }
        for (int i=kq.size()-1;i>=0;--i)
            cout<<kq[i]<<" ";
        cout<<"\n";
    }
    exit(0);
}


#include <bits/stdc++.h>

using namespace std;
#define int long long

signed main()
{
    int t,n;
    cin>>t;
    while (t--)
    {
        cin>>n;
        vector<int>a(n,0);
        for (int i=0;i<n;++i)
        {
            cin>>a[i];
        }
        vector<int> kq;
        sort(a.begin(),a.end());
        int l=1,r=n;
        while (l-r<=0)
        {
            kq.push_back(a[l]);
            if (l-r!=0)
                kq.push_back(a[r]);
            l++;
            r--;
        }
        for (int i=kq.size()-1;i>=0;--i)
            cout<<kq[i]<<" ";
        cout<<"\n";
    }
    exit(0);
}


#include<bits/stdc++.h>
#include<math.h>
#include<string>
#include<vector>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int k=0;

        int n;
        cin>>n;
        vector<int>a(n);
        vector<int>b(n+1);
       for(int l=0;l<n;l++)
       cin>>a[l];
       sort(a.begin(),a.end());
       b[k++]=a[n/2];

       int i=n/2;
       if(abs(a[i+1]-a[i])>=abs(a[i]-a[i-1]))
       {
           for(int j=1;j<=i;j++)
           {
               if(k<n)
               {
               b[k++]=a[i-j];
               b[k++]=a[i+j];
               }
           }
       }
       else
       {
           for(int j=1;j<=i;j++)
            {
               if(k<n)
               {
               b[k++]=a[i+j];
               b[k++]=a[i-j];
               }
           }
       }
       b.erase(b.begin()+n);
       for(int j=0;j<n;j++)
       cout<<b[j]<<" ";
       cout<<"\n";
    }
  return 0;

}


#include<bits/stdc++.h>
#include<math.h>
#include<string>
#include<vector>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int k=0;

        int n;
        cin>>n;
        vector<long long int>a(n+1,INT_MAX);
        a[0]=INT_MAX;
        vector<long long int>b(n+1);
       for(int l=0;l<n;l++)
       cin>>a[l];
       sort(a.begin(),a.end());
       b[k++]=a[n/2];

       int i=n/2;
       if(abs(a[i+1]-a[i])>=abs(a[i]-a[i-1]))
       {
           for(int j=1;j<=i;j++)
           {
               if(k<=n)
               {
               b[k++]=a[i-j];
               b[k++]=a[i+j];
               }
           }
       }
       else
       {
           for(int j=1;j<=i;j++)
            {
               if(k<=n)
               {
               b[k++]=a[i+j];
               b[k++]=a[i-j];
               }
           }
       }

       for(int j=0;j<n;j++)
       cout<<b[j]<<" ";
       cout<<"\n";
    }
  return 0;

}


#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int a,b,i,n,t;
cin>>t;
while(t--)
{
cin>>n;
int a[n];
for(i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
if(n%2)
cout<<a[n/2]<<" ";
for(i=n/2-1;i>=0;i--)
{
cout<<a[n-i-1]<<" "<<a[i]<<" ";
}
cout<<endl;
}
return 0;
}


#include<bits/stdc++.h>
#include<math.h>
#include<string>
#include<vector>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int k=0;

        int n;
        cin>>n;
        vector<long long int>a(n);
        vector<long long int>b(n+1);
       for(int l=0;l<n;l++)
       cin>>a[l];
       sort(a.begin(),a.end());
       b[k++]=a[n/2];

       int i=n/2;
       if(abs(a[i+1]-a[i])>=abs(a[i]-a[i-1]))
       {
           for(int j=1;j<=i;j++)
           {
               if(k<=n)
               {
               b[k++]=a[i-j];
               b[k++]=a[i+j];
               }
           }
       }
       else
       {
           for(int j=1;j<=i;j++)
            {
               if(k<=n)
               {
               b[k++]=a[i+j];
               b[k++]=a[i-j];
               }
           }
       }

       for(int j=0;j<n;j++)
       cout<<b[j]<<" ";
       cout<<"\n";
    }
  return 0;

}


#include<bits/stdc++.h>
#include<math.h>
#include<string>
#include<vector>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int k=0;

        int n;
        cin>>n;
        vector<long long int>a(n);
        vector<long long int>b(n+1);
       for(int l=0;l<n;l++)
       cin>>a[l];
       sort(a.begin(),a.end());
       b[k++]=a[n/2];

       int i=n/2;
       if(abs(a[i+1]-a[i])>=abs(a[i]-a[i-1]))
       {
           for(int j=1;j<=i;j++)
           {
               if(k<=n)
               {
               b[k++]=a[i-j];
               b[k++]=a[i+j];
               }
           }
       }
       else
       {
           for(int j=1;j<=i;j++)
            {
               if(k<=n)
               {
               b[k++]=a[i+j];
               b[k++]=a[i-j];
               }
           }
       }
       b.erase(b.begin()+n);
       for(int j=0;j<n;j++)
       cout<<b[j]<<" ";
       cout<<"\n";
    }
  return 0;

}


#include<bits/stdc++.h>
#include<math.h>
#include<string>
#include<vector>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int k=0;

        int n;
        cin>>n;
        vector<int>a(n);
        vector<int>b(n+1);
       for(int l=0;l<n;l++)
       cin>>a[l];
       sort(a.begin(),a.end());
       b[k++]=a[n/2];

       int i=n/2;
       if(abs(a[i+1]-a[i])>=abs(a[i]-a[i-1]))
       {
           for(int j=1;j<=i;j++)
           {
               if(k<n)
               {
               b[k++]=a[i-j];
               b[k++]=a[i+j];
               }
           }
       }
       else
       {
           for(int j=1;j<=i;j++)
            {
               if(k<=n)
               {
               b[k++]=a[i+j];
               b[k++]=a[i-j];
               }
           }
       }
       b.erase(b.begin()+n);
       for(int j=0;j<n;j++)
       cout<<b[j]<<" ";
       cout<<"\n";
    }
  return 0;

}


#include <iostream>
#include <vector>
#include <map>
#include <set>
#include <algorithm>
#include <cmath>
#include <string>
#include <queue>
#include <iomanip>
#include <unordered_map>
#include <unordered_set>
#include <bitset>
#include <complex>
#include <stack>
#include <fstream>

#define null nullptr
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()

using namespace std;
typedef int64_t ll;
typedef double long dl;
typedef uint64_t ull;
//const dl EPS = 1e-6;
//////
//struct wor {
//    dl x = 0, y = 0;
//};
//
////
//dl dist(wor a, wor b) {
//    dl answer = sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
//    return answer;
//}

//
////
//wor intersect(wor a, wor b, wor c) {
//    if (b.x - a.x == 0) {
//        return {b.x, c.y};
//    }
//    if (b.y - a.y == 0) {
//        return {c.x, b.y};
//    }
//    wor A;
//    A.x = b.x - a.x;
//    A.y = b.y - a.y;
//    dl C = A.x * c.x + A.y * c.y;
//
//    wor answer;
//    dl C1 = -A.x * a.y + A.y * a.x;
//    answer.y = (C1 - A.y * C / A.x) / (-A.x - A.y * A.y / A.x);
//    answer.x = (C - A.y * answer.y) / A.x;
//
//    return answer;
//}
//
////
//ll vec(wor a, wor b) {
//    return a.x * b.y - a.y * b.x;
//}
//
//ll scal(wor &a, wor &b) {
//    return a.x * b.x + a.y * b.y;
//}

//
//bool rely(wor a, wor b, wor c) {
//    return min(a.x, b.x) < c.x + 1e-8 && c.x < max(b.x, a.x) + 1e-8 && min(a.y, b.y) < c.y + 1e-8 &&
//           c.y < max(b.y, a.y) + 1e-8;
//}
//
////
//wor operator-(wor a, wor b) {
//    wor res;
//    res.x = a.x - b.x;
//    res.y = a.y - b.y;
//    return res;
//}
//
//wor operator+(wor a, wor b) {
//    wor res;
//    res.x = a.x + b.x;
//    res.y = a.y + b.y;
//    return res;
//}
//
//wor operator/(wor a, dl b) {
//    wor res;
//    res.x = a.x / b;
//    res.y = a.y / b;
//    return res;
//}
//
//void operator/=(wor &a, dl b) {
//    a.x /= b;
//    a.y /= b;
//}
//
////
//bool is_in(vector<wor> &pol, wor c) {
//    for (int i = 1; i <= pol.size(); i++) {
//        wor a = pol[i % pol.size()] - pol[i - 1];
//        if (vec(a, c - pol[i - 1]) < 0) {
//            return false;
//        }
//    }
//    return true;
//}
//
//bool suit(vector<wor> &pol, wor c, dl length) {
//    for (int i = 1; i <= pol.size(); i++) {
//        auto inter = intersect(pol[i % pol.size()], pol[i - 1], c);
//        if (rely(pol[i % pol.size()], pol[i - 1], inter)) {
//            if (dist(inter, c) < length + 1e-8)return true;
//        }
//        if (dist(pol[i % pol.size()], c) < length + 1e-8) {
//            return true;
//        }
//        if (dist(pol[i - 1], c) < length + 1e-8) {
//            return true;
//        }
//    }
//    return false;
//}
//

//ll find(ll v, vector<ll> &parent) {
//    if (parent[v] == v) {
//        return v;
//    }
//    return parent[v] = find(parent[v], parent);
//}
//
//void merge(ll a, ll b, vector<ll> &parent, vector<ll> &size, vector<ll> &mi, vector<ll> &ma) {
//
//    if (size[a] > size[b]) {
//        parent[b] = a;
//        size[a] += size[b];
//        mi[a] = min(mi[a], mi[b]);
//        ma[a] = max(ma[a], ma[b]);
//    } else {
//        parent[a] = b;
//        size[b] += size[a];
//        mi[b] = min(mi[b], mi[a]);
//        ma[b] = max(ma[b], ma[a]);
//    }
//}
//dl func(dl x, dl h,dl l){
//    dl k = l - sqrt(x*x+h*h);
//    return x*k/sqrt(x*x+h*h);
//}
//void retro(ll node,vector<ll> &parent,vector<bool> &win,vector<bool> &loose,vector<ll> &am,vector<bool> &used){
//    used[node]=true;
//    if(node==0 || used[parent[node]])return;
//    if(loose[node]){
//        loose[parent[node]]=true;
//        retro(parent[node],parent,win,loose,am,used);
//    }else if(win[node]){
//        am[parent[node]]--;
//        if(am[parent[node]]==0){
//            win[parent[node]]=true;
//            retro(parent[node],parent,win,loose,am,used);
//        }
//    }
//}
//wor beg;
//
//bool comp(wor &a, wor &b) {
//    wor k = a - beg;
//    wor z = b - beg;
//    if (vec(k, z) == 0) {
//        return k.x * k.x + k.y * k.y < z.x * z.x + z.y * z.y;
//    }
//    return vec(k, z) > 0;
//}
//
//vector<wor> get_hull(vector<wor> arr) {
//    ll mi = 0;
//    for (int i = 1; i < arr.size(); i++) {
//        if (arr[i].x < arr[mi].x) {
//            mi = i;
//        } else if (arr[i].x == arr[mi].x && arr[i].y < arr[mi].y) {
//            mi = i;
//        }
//    }
//    swap(arr[0], arr[mi]);
//    beg = arr[0];
//    sort(arr.begin() + 1, arr.end(), comp);
//    vector<wor> answer;
//    answer.push_back(arr[0]);
//    answer.push_back(arr[1]);
//    for (int i = 2; i < arr.size(); i++) {
//        wor temp = arr[i] - answer.back();
//        wor temp1 = arr[i] - answer[answer.size() - 2];
//        while (answer.size() >= 2 && vec(temp1, temp) <= 0) {
//            answer.pop_back();
//            if (answer.size() == 1)break;
//            temp = arr[i] - answer.back();
//            temp1 = arr[i] - answer[answer.size() - 2];
//        }
//        answer.push_back(arr[i]);
//    }
//    return answer;
//}
//dl deg(wor &a, wor &b,wor &c){
//    wor k = a-b;
//    wor z = c-b;
//    return acos((k.x*z.x + k.y*z.y)/(dist(a,b)*dist(b,c)));
//}
//const dl PI = acos(-1);
//bool comp(ll a, ll b){
//    return sin(a)>sin(b);
//}

//bool byXbyY(wor a, wor b) {
//    if (a.x == b.x) {
//        return a.y < b.y;
//    }
//    return a.x < b.x;
//}
//const dl PI = acos(-1);
//
//dl get_x(dl a, dl b, dl h, dl d) {
//    if (h <= d) {
//        return b - a;
//    }
//    return (b - a) / h * d;
//}
//
//struct sq {
//    vector<wor> data;
//};
//
//sq build(wor a, wor b) {
//    wor c = b - a;
//    wor n;
//    n.x = -c.y;
//    n.y = c.x;
//    n /= 2;
//    wor center = a + (c / 2);
//    sq res;
//    res.data.push_back(a);
//    res.data.push_back(center - n);
//    res.data.push_back(b);
//    res.data.push_back(center + n);
//    return res;
//}
//
//dl dist_to_sq(wor p, sq s) {
//    if (is_in(s.data, p)) {
//        return 0;
//    }
//    dl answer = 1e16;
//    for (auto e : s.data) {
//        answer = min(answer, dist(p, e));
//    }
//    for (int i = 1; i <= s.data.size(); i++) {
//        auto inter = intersect(s.data[i % s.data.size()], s.data[i - 1], p);
//        if (rely(s.data[i % s.data.size()], s.data[i - 1], inter)) {
//            answer = min(answer, dist(p, inter));
//        }
//    }
//    return answer;
//}
//

//
//
//bool is_prime(ll p) {
//    for (ll i = 2; i * i <= p; i++) {
//        if (p % i == 0)return false;
//    }
//    return true;
//}
//
vector<pair<ll,ll>> canon(ll p) {
    vector<pair<ll,ll>> answer;
    for (ll i = 2; i * i <= p; i++) {
        if (p % i == 0) {
            ll k =0;
            while (p % i == 0) {
                p /= i;
                k++;
            }
            answer.push_back({i,k});
        }
    }
    if (p > 1)answer.push_back({p,1});
    return answer;
}
//

template<typename T, typename R>
istream &operator>>(istream &is, pair<T, R> &a) {
    is >> a.first >> a.second;
    return is;
}

template<typename T, typename R>
ostream &operator<<(ostream &os, pair<T, R> &a) {
    os << a.first << " " << a.second;
    return os;
}

template<typename T>
ostream &operator<<(ostream &os, vector<T> &a) {
    for (auto e : a) {
        os << e << " ";
    }
    return os;
}

template<typename T>
istream &operator>>(istream &is, vector<T> &a) {
    for (auto &e:a) {
        is >> e;
    }
    return is;
}

//ll bin_pow(ll a, ll b, ll mod){
//    ll res = 1;
//    while(b){
//        if(b&1){
//            res*=a;
//            res%=mod;
//        }
//        a*=a;
//        a%=mod;
//        b>>=1;
//    }
//    return res;
//}
//void count_sort(vector<ll> &p, vector<ll> &c) {
//    ll n = p.size();
//    vector<ll> am(n);
//    for (auto e : c) {
//        am[e]++;
//    }
//    vector<ll> pos(n);
//    vector<ll> res_p(n);
//    pos[0] = 0;
//    for (int i = 1; i < n; i++) {
//        pos[i] = pos[i - 1] + am[i - 1];
//    }
//    for (auto e : p) {
//        res_p[pos[c[e]]] = e;
//        pos[c[e]]++;
//    }
//    p.swap(res_p);
//}

//pair<vector<ll>, vector<ll>> suf_arr(string &s) {
//    s += " ";
//    ll n = s.length();
//    vector<ll> p(n), c(n);
//    {
//        vector<pair<char, ll>> arr(n);
//        for (int i = 0; i < n; i++)arr[i] = {s[i], i};
//        sort(all(arr));
//        for (int i = 0; i < n; i++)p[i] = arr[i].second;
//        c[p[0]] = 0;
//        for (int i = 1; i < n; i++) {
//            if (arr[i].first == arr[i - 1].first) {
//                c[p[i]] = c[p[i - 1]];
//            } else {
//                c[p[i]] = c[p[i - 1]] + 1;
//            }
//        }
//    }
//    ll k = 0;
//    while ((1ll << k) < n) {
//        for (int i = 0; i < n; i++) {
//            p[i] = (p[i] + n - (1ll << k)) % n;
//        }
//        count_sort(p, c);
//        vector<ll> c_new(n);
//        c_new[p[0]] = 0;
//        for (int i = 1; i < n; i++) {
//            pair<ll, ll> now = {c[p[i]], c[(p[i] + (1ll << k)) % n]};
//            pair<ll, ll> was = {c[p[i - 1]], c[(p[i - 1] + (1ll << k)) % n]};
//            if (was == now) {
//                c_new[p[i]] = c_new[p[i - 1]];
//            } else {
//                c_new[p[i]] = c_new[p[i - 1]] + 1;
//            }
//        }
//        c.swap(c_new);
//        k++;
//    }
//    vector<ll> lcp(n);
//    k = 0;
//    for (int i = 0; i < n - 1; i++) {
//        ll pid = c[i];
//        ll prev = p[pid - 1];
//        while (s[i + k] == s[prev + k]) {
//            k++;
//        }
//        lcp[pid] = k;
//        k = max(0ll, k - 1);
//    }
//    return {p, lcp};
//}
//void count_sort(vector<ll> &p, vector<ll> &c) {
//    ll n = p.size();
//    vector<ll> am(n);
//    for (auto e : c) {
//        am[e]++;
//    }
//    vector<ll> pos(n);
//    vector<ll> p_res(n);
//    pos[0] = 0;
//    for (int i = 1; i < n; i++) {
//        pos[i] = pos[i - 1] + am[i - 1];
//    }
//    for (auto e : p) {
//        p_res[pos[c[e]]] = e;
//        pos[c[e]]++;
//    }
//    p.swap(p_res);
//}
//
//pair<vector<ll>, vector<ll>> suf_arr(string &s) {
//    s += "$";
//    ll n = s.length();
//    vector<ll> p(n), c(n);
//    {
//        vector<pair<char, ll>> arr(n);
//        for (int i = 0; i < n; i++)arr[i] = {s[i], i};
//        sort(all(arr));
//        for (int i = 0; i < n; i++) {
//            p[i] = arr[i].second;
//        }
//        c[p[0]] = 0;
//        for (int i = 1; i < n; i++) {
//            if (arr[i].first == arr[i - 1].first) {
//                c[p[i]] = c[p[i - 1]];
//            } else {
//                c[p[i]] = c[p[i - 1]] + 1;
//            }
//        }
//    }
//    ll k = 0;
//    while ((1 << k) < n) {
//        for (int i = 0; i < n; i++) {
//            p[i] = (p[i] - (1 << k) + n) % n;
//        }
//        count_sort(p, c);
//        vector<ll> c_new(n);
//        c_new[p[0]] = 0;
//        for (int i = 1; i < n; i++) {
//            pair<ll, ll> was = {c[p[i - 1]], c[(p[i - 1] + (1 << k)) % n]};
//            pair<ll, ll> now = {c[p[i]], c[(p[i] + (1 << k)) % n]};
//            if (now == was) {
//                c_new[p[i]] = c_new[p[i - 1]];
//            } else {
//                c_new[p[i]] = c_new[p[i - 1]] + 1;
//            }
//        }
//        c.swap(c_new);
//        k++;
//    }
//    vector<ll> lcp(n);
//    k = 0;
//    for (int i = 0; i < n - 1; i++) {
//        ll id = c[i];
//        ll pid = p[id - 1];
//        while (s[i + k] == s[pid + k]) {
//            k++;
//        }
//        lcp[id] = k;
//        k = max(0ll, k - 1);
//    }
//    return {p, lcp};
//}
//const ll mod = 998244353;
//ll len = (mod-1)&(-(mod-1));
//ll LOG_gl = 23;
//ll base_gl = 31;
//vector<ll> bit_rev(ll n, ll log){
//    vector<ll> rev(n);
//    ll k = 0 ;
//    for(ll i =1 ; i < n; i ++){
//        rev[i]  = rev[i^(1ll<<k)] ^ (1ll<<(log-k-1));
//        if(!((i+1)&(i)))k++;
//    }
//    return rev;
//}
//vector<ll> get_w(ll n,ll log){
//    ll base = bin_pow(base_gl,(1ll<<(LOG_gl - log)),mod);
//    vector<ll> w(n);
//    w[0] =1;
//    for(int i = 1; i < n ; i ++){
//        w[i] = (w[i-1] * base)%mod;
//    }
//    return w;
//}
//ll w(ll pow, ll base, vector<ll> &ws, ll N){
//    return ws[pow*N/base];
//}
//void butterfly(ll &a, ll &b, ll w){
//    ll x = (a +b*w%mod)%mod;
//    ll y = (a + mod - b*w%mod)%mod;
//    a = x;
//    b = y;
//}
//vector<ll> fft(vector<ll> &a,ll n, ll LOG , bool back){
//    const ll nrev = bin_pow(n,mod-2,mod);
//    auto rev = bit_rev(n,LOG);
//    vector<ll> temp =a;
//    for(int i = 0 ; i < n; i ++){
//        temp[rev[i]] = a[i];
//    }
//    a.swap(temp);
//    auto ws = get_w(n,LOG);
//    for(ll dl = 1; dl < n; (dl <<=1)){
//        for(int i = 0 ; i < n ; i +=2*dl){
//            for(ll k = 0 ; k < dl ; k ++){
//                butterfly(a[i+k], a[i+dl + k], w(k,2*dl,ws,n));
//            }
//        }
//    }
//    if(back){
//        for(int i = 0 ; i < n; i ++){
//            (a[i] *=nrev)%=mod;
//        }
//        reverse(a.begin()+1,a.end());
//    }
//    return a;
//}
//vector<ll> mult(vector<ll> &a,vector<ll> &b){
//    ll n = a.size() + b.size();
//    while(n&(n-1)){
//        n++;
//    }
//    a.resize(n);
//    b.resize(n);
//    ll t = 0 , temp_c = n;
//    while(temp_c > 1){
//        t++;
//        temp_c>>=1;
//    }
//    a = fft(a,n,t,false);
//    b = fft(b,n,t,false);
//    for(int i = 0 ; i < n ; i ++){
//        (a[i]*=b[i])%=mod;
//    }
//    return fft(a,n,t,true);
//}

//pair<vector<ll>, vector<ll>> manaker(string &s) {
//    ll n = s.length();
//    ll l = 0;
//    ll r = -1;
//    vector<ll> d1(n);
//    for (int i = 0; i < n; i++) {
//        ll k = i > r ? 1 : min(d1[l + r - i], r - i + 1);
//        while (i + k < n && i - k >= 0 && s[i + k] == s[i - k]) {
//            k++;
//        }
//        d1[i] = k;
//        if (i + k - 1 > r) {
//            r = i + k - 1;
//            l = i - k + 1;
//        }
//    }
//
//    vector<ll> d2(n);
//    l = 0;
//    r = -1;
//    for (int i = 0; i < n; i++) {
//        ll k = i > r ? 0 : min(d2[l + r - i + 1], r - i + 1);
//        while (i + k < n && i - k - 1 >= 0 && s[i + k] == s[i - k - 1]) {
//            k++;
//        }
//        d2[i] = k;
//        if (i + k - 1 > r) {
//            r = i + k - 1;
//            l = i - k;
//        }
//    }
//    return {d1, d2};
//}
//
//vector<ll> pref(string &s) {
//    ll n = s.length();
//    vector<ll> p(n);
//    p[0] = 0;
//    for (int i = 1; i < n; i++) {
//        ll j = p[i - 1];
//        while (j > 0 && s[j] != s[i]) {
//            j = p[j - 1];
//        }
//        if (s[i] == s[j])j++;
//        p[i] = j;
//    }
//    return p;
//}
//
//vector<ll> zf(string &s) {
//    ll n = s.length();
//    vector<ll> z(n);
//    ll l = 0;
//
//    ll r = 0;
//    for (int i = 1; i < n; i++) {
//        z[i] = i > r ? 0 : min(z[i - l], r - i + 1);
//        while (z[i] + i < n && s[z[i]] == s[z[i] + i]) {
//            z[i]++;
//        }
//        if (z[i] + i - 1 > r) {
//            l = i;
//            r = z[i] + i - 1;
//        }
//    }
//    return z;
//}
//const ll MAXN = 1e5;
//struct vertex{
//    map<char,int> next;
//    bool target=false;
//    bool realtarget = false;
//    int parent=0;
//    int suf_link = 0;
//};
//struct aho_korasik{
//
//    int sz;
//    vector<vertex> vert;
//    aho_korasik(){
//        vert.resize(MAXN);
//        sz = 2;
//        for(int i = CHAR_MIN; i <=CHAR_MAX;i ++){
//            vert[0].next[i]=1;
//        }
//    }
//    void add_str(const string& s){
//        if(s.empty())return;
//        int v = 1;
//        for(int i = 0 ; i < s.length() ; i ++){
//            if(vert[v].next.find(vert[v].next[s[i]]) == vert[v].next.end()){
//                vert[sz].parent = v;
//                vert[v].next[s[i]] = sz;
//                sz++;
//            }
//            v = vert[v].next[s[i]] ;
//        }
//        vert[v].realtarget = true;
//        vert[v].target = true;
//    }
//    void build_suf_links(){
//        queue<int> q;
//        q.push(1);
//        while(!q.empty()){
//            ll v = q.front();
//            q.pop();
//            if(vert[vert[v].suf_link].target){
//                vert[v].target = true;
//            }
//            for(auto &e : vert[v].next){
//                q.push(e.second);
//                int p = vert[v].suf_link;
//                while(vert[p].next.find(e.first) == vert[p].next.end()){
//                    p = vert[p].suf_link;
//                }
//                vert[e.second].suf_link = vert[p].next[e.first];
//
//            }
//        }
//    }
//};

//const ll MAXN = 4e5 + 100;
//vector<pair<ll, ll>> t;
//vector<ll> d;
//
//void push(ll v, ll vl, ll vr) {
//    if (d[v] != -1) {
//        if (vl == vr) {
//            t[v].second = t[v].first = 0;
//        } else {
//            d[2 * v + 1] = d[2 * v + 2] = d[v];
//            t[v].second = t[v].first = 0;
//        }
//        d[v] = -1;
//    }
//}
//pair<ll,ll> get(ll v, ll vl, ll vr ,ll l , ll r){
//    if(l>r)return{0,0};
//    push(v, vl, vr);
//    if (vr < l || vl > r) {
//        return{0,0};
//    }
//    if (l <= vl && vr <= r) {
//        return t[v];
//    }
//    ll m = (vl + vr) / 2;
//    auto f = get(2 * v + 1, vl, m, l, r);
//    auto s = get(2 * v + 2, m + 1, vr, l, r);
//    return {f.first+s.first,s.second+f.second};
//}
//void del(ll v, ll vl, ll vr, ll l, ll r) {
//    if(l>r)return;
//    push(v, vl, vr);
//    if (vr < l || vl > r) {
//        return;
//    }
//    if (l <= vl && vr <= r) {
//        d[v] = 0;
//        push(v, vl, vr);
//        return;
//    }
//    ll m = (vl + vr) / 2;
//    del(2 * v + 1, vl, m, l, r);
//    del(2 * v + 2, m + 1, vr, l, r);
//    t[v].second = t[2 * v + 1].second + t[2 * v + 2].second;
//    t[v].first = t[2 * v + 1].first + t[2 * v + 2].first;
//}
//
//void add(ll v, ll vl, ll vr, ll pos, ll val, ll am) {
//    push(v, vl, vr);
//    if (vl == vr) {
//        t[v].second += val;
//        t[v].first += am;
//        return;
//    }
//    ll m = (vl + vr) / 2;
//    if (pos <= m) {
//        add(2 * v + 1, vl, m, pos, val,am);
//    } else {
//        add(2 * v + 2, m + 1, vr, pos, val,am);
//    }
//    push(2*v+1,vl,m);
//    push(2*v+2,m+1,vr);
//    t[v].second = t[2 * v + 1].second + t[2 * v + 2].second;
//    t[v].first = t[2 * v + 1].first + t[2 * v + 2].first;
//}
//ll am_grans(string s){
//    ll n = s.length();
//    ll answer =0 ;
//    for(int i = 1 ; i < n; i ++){
//        if(s.substr(0,i) == s.substr(n-i,i)){
//            answer++;
//        }
//    }
//    return answer;
//}
int main() {
//    freopen("D:/CLionProjects/strings.txt","r",stdin);
//    freopen("D:/CLionProjects/res2.txt","w",stdout);
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    ll t;
    cin>>t;
    while(t--){
        ll n;
        cin>>n;
        vector<ll> arr(n);
        cin>>arr;
        if(n == 1){
            cout<<arr<<"\n";
            continue;
        }
        sort(all(arr));
        vector<ll> res(n);
        for(int i =0 ; i < n/2; i ++){
            res[2*i] = arr[n-1-i];
            res[2*i+1] = arr[i];
        }
        if(n&1){
            res[n-1] = arr[(n+1)/2];
        }
        reverse(all(res));
        bool b = false;
        for(int i = 2; i < n &&!b; i ++){
            if(abs(res[i]-res[i-1]) < abs(res[i-1]-res[i-2])){
                b = true;
            }
        }
        if(b){
            vector<ll> res(n);
            for(int i =0 ; i < n/2; i ++){
                res[2*i] = arr[i];
                res[2*i+1] = arr[n-1-i];
            }
            if(n&1){
                res[n-1] = arr[(n+1)/2];
            }
            reverse(all(res));
            cot<<res<<"\n";
        }else{
            cout<<res<<"\n";
        }

    }
    return 0;
}


#include <iostream>
#include <vector>
#include <map>
#include <set>
#include <algorithm>
#include <cmath>
#include <string>
#include <queue>
#include <iomanip>
#include <unordered_map>
#include <unordered_set>
#include <bitset>
#include <complex>
#include <stack>
#include <fstream>

#define null nullptr
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()

using namespace std;
typedef int64_t ll;
typedef double long dl;
typedef uint64_t ull;
//const dl EPS = 1e-6;
//////
//struct wor {
//    dl x = 0, y = 0;
//};
//
////
//dl dist(wor a, wor b) {
//    dl answer = sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
//    return answer;
//}

//
////
//wor intersect(wor a, wor b, wor c) {
//    if (b.x - a.x == 0) {
//        return {b.x, c.y};
//    }
//    if (b.y - a.y == 0) {
//        return {c.x, b.y};
//    }
//    wor A;
//    A.x = b.x - a.x;
//    A.y = b.y - a.y;
//    dl C = A.x * c.x + A.y * c.y;
//
//    wor answer;
//    dl C1 = -A.x * a.y + A.y * a.x;
//    answer.y = (C1 - A.y * C / A.x) / (-A.x - A.y * A.y / A.x);
//    answer.x = (C - A.y * answer.y) / A.x;
//
//    return answer;
//}
//
////
//ll vec(wor a, wor b) {
//    return a.x * b.y - a.y * b.x;
//}
//
//ll scal(wor &a, wor &b) {
//    return a.x * b.x + a.y * b.y;
//}

//
//bool rely(wor a, wor b, wor c) {
//    return min(a.x, b.x) < c.x + 1e-8 && c.x < max(b.x, a.x) + 1e-8 && min(a.y, b.y) < c.y + 1e-8 &&
//           c.y < max(b.y, a.y) + 1e-8;
//}
//
////
//wor operator-(wor a, wor b) {
//    wor res;
//    res.x = a.x - b.x;
//    res.y = a.y - b.y;
//    return res;
//}
//
//wor operator+(wor a, wor b) {
//    wor res;
//    res.x = a.x + b.x;
//    res.y = a.y + b.y;
//    return res;
//}
//
//wor operator/(wor a, dl b) {
//    wor res;
//    res.x = a.x / b;
//    res.y = a.y / b;
//    return res;
//}
//
//void operator/=(wor &a, dl b) {
//    a.x /= b;
//    a.y /= b;
//}
//
////
//bool is_in(vector<wor> &pol, wor c) {
//    for (int i = 1; i <= pol.size(); i++) {
//        wor a = pol[i % pol.size()] - pol[i - 1];
//        if (vec(a, c - pol[i - 1]) < 0) {
//            return false;
//        }
//    }
//    return true;
//}
//
//bool suit(vector<wor> &pol, wor c, dl length) {
//    for (int i = 1; i <= pol.size(); i++) {
//        auto inter = intersect(pol[i % pol.size()], pol[i - 1], c);
//        if (rely(pol[i % pol.size()], pol[i - 1], inter)) {
//            if (dist(inter, c) < length + 1e-8)return true;
//        }
//        if (dist(pol[i % pol.size()], c) < length + 1e-8) {
//            return true;
//        }
//        if (dist(pol[i - 1], c) < length + 1e-8) {
//            return true;
//        }
//    }
//    return false;
//}
//

//ll find(ll v, vector<ll> &parent) {
//    if (parent[v] == v) {
//        return v;
//    }
//    return parent[v] = find(parent[v], parent);
//}
//
//void merge(ll a, ll b, vector<ll> &parent, vector<ll> &size, vector<ll> &mi, vector<ll> &ma) {
//
//    if (size[a] > size[b]) {
//        parent[b] = a;
//        size[a] += size[b];
//        mi[a] = min(mi[a], mi[b]);
//        ma[a] = max(ma[a], ma[b]);
//    } else {
//        parent[a] = b;
//        size[b] += size[a];
//        mi[b] = min(mi[b], mi[a]);
//        ma[b] = max(ma[b], ma[a]);
//    }
//}
//dl func(dl x, dl h,dl l){
//    dl k = l - sqrt(x*x+h*h);
//    return x*k/sqrt(x*x+h*h);
//}
//void retro(ll node,vector<ll> &parent,vector<bool> &win,vector<bool> &loose,vector<ll> &am,vector<bool> &used){
//    used[node]=true;
//    if(node==0 || used[parent[node]])return;
//    if(loose[node]){
//        loose[parent[node]]=true;
//        retro(parent[node],parent,win,loose,am,used);
//    }else if(win[node]){
//        am[parent[node]]--;
//        if(am[parent[node]]==0){
//            win[parent[node]]=true;
//            retro(parent[node],parent,win,loose,am,used);
//        }
//    }
//}
//wor beg;
//
//bool comp(wor &a, wor &b) {
//    wor k = a - beg;
//    wor z = b - beg;
//    if (vec(k, z) == 0) {
//        return k.x * k.x + k.y * k.y < z.x * z.x + z.y * z.y;
//    }
//    return vec(k, z) > 0;
//}
//
//vector<wor> get_hull(vector<wor> arr) {
//    ll mi = 0;
//    for (int i = 1; i < arr.size(); i++) {
//        if (arr[i].x < arr[mi].x) {
//            mi = i;
//        } else if (arr[i].x == arr[mi].x && arr[i].y < arr[mi].y) {
//            mi = i;
//        }
//    }
//    swap(arr[0], arr[mi]);
//    beg = arr[0];
//    sort(arr.begin() + 1, arr.end(), comp);
//    vector<wor> answer;
//    answer.push_back(arr[0]);
//    answer.push_back(arr[1]);
//    for (int i = 2; i < arr.size(); i++) {
//        wor temp = arr[i] - answer.back();
//        wor temp1 = arr[i] - answer[answer.size() - 2];
//        while (answer.size() >= 2 && vec(temp1, temp) <= 0) {
//            answer.pop_back();
//            if (answer.size() == 1)break;
//            temp = arr[i] - answer.back();
//            temp1 = arr[i] - answer[answer.size() - 2];
//        }
//        answer.push_back(arr[i]);
//    }
//    return answer;
//}
//dl deg(wor &a, wor &b,wor &c){
//    wor k = a-b;
//    wor z = c-b;
//    return acos((k.x*z.x + k.y*z.y)/(dist(a,b)*dist(b,c)));
//}
//const dl PI = acos(-1);
//bool comp(ll a, ll b){
//    return sin(a)>sin(b);
//}

//bool byXbyY(wor a, wor b) {
//    if (a.x == b.x) {
//        return a.y < b.y;
//    }
//    return a.x < b.x;
//}
//const dl PI = acos(-1);
//
//dl get_x(dl a, dl b, dl h, dl d) {
//    if (h <= d) {
//        return b - a;
//    }
//    return (b - a) / h * d;
//}
//
//struct sq {
//    vector<wor> data;
//};
//
//sq build(wor a, wor b) {
//    wor c = b - a;
//    wor n;
//    n.x = -c.y;
//    n.y = c.x;
//    n /= 2;
//    wor center = a + (c / 2);
//    sq res;
//    res.data.push_back(a);
//    res.data.push_back(center - n);
//    res.data.push_back(b);
//    res.data.push_back(center + n);
//    return res;
//}
//
//dl dist_to_sq(wor p, sq s) {
//    if (is_in(s.data, p)) {
//        return 0;
//    }
//    dl answer = 1e16;
//    for (auto e : s.data) {
//        answer = min(answer, dist(p, e));
//    }
//    for (int i = 1; i <= s.data.size(); i++) {
//        auto inter = intersect(s.data[i % s.data.size()], s.data[i - 1], p);
//        if (rely(s.data[i % s.data.size()], s.data[i - 1], inter)) {
//            answer = min(answer, dist(p, inter));
//        }
//    }
//    return answer;
//}
//

//
//
//bool is_prime(ll p) {
//    for (ll i = 2; i * i <= p; i++) {
//        if (p % i == 0)return false;
//    }
//    return true;
//}
//
vector<pair<ll,ll>> canon(ll p) {
    vector<pair<ll,ll>> answer;
    for (ll i = 2; i * i <= p; i++) {
        if (p % i == 0) {
            ll k =0;
            while (p % i == 0) {
                p /= i;
                k++;
            }
            answer.push_back({i,k});
        }
    }
    if (p > 1)answer.push_back({p,1});
    return answer;
}
//

template<typename T, typename R>
istream &operator>>(istream &is, pair<T, R> &a) {
    is >> a.first >> a.second;
    return is;
}

template<typename T, typename R>
ostream &operator<<(ostream &os, pair<T, R> &a) {
    os << a.first << " " << a.second;
    return os;
}

template<typename T>
ostream &operator<<(ostream &os, vector<T> &a) {
    for (auto e : a) {
        os << e << " ";
    }
    return os;
}

template<typename T>
istream &operator>>(istream &is, vector<T> &a) {
    for (auto &e:a) {
        is >> e;
    }
    return is;
}

//ll bin_pow(ll a, ll b, ll mod){
//    ll res = 1;
//    while(b){
//        if(b&1){
//            res*=a;
//            res%=mod;
//        }
//        a*=a;
//        a%=mod;
//        b>>=1;
//    }
//    return res;
//}
//void count_sort(vector<ll> &p, vector<ll> &c) {
//    ll n = p.size();
//    vector<ll> am(n);
//    for (auto e : c) {
//        am[e]++;
//    }
//    vector<ll> pos(n);
//    vector<ll> res_p(n);
//    pos[0] = 0;
//    for (int i = 1; i < n; i++) {
//        pos[i] = pos[i - 1] + am[i - 1];
//    }
//    for (auto e : p) {
//        res_p[pos[c[e]]] = e;
//        pos[c[e]]++;
//    }
//    p.swap(res_p);
//}

//pair<vector<ll>, vector<ll>> suf_arr(string &s) {
//    s += " ";
//    ll n = s.length();
//    vector<ll> p(n), c(n);
//    {
//        vector<pair<char, ll>> arr(n);
//        for (int i = 0; i < n; i++)arr[i] = {s[i], i};
//        sort(all(arr));
//        for (int i = 0; i < n; i++)p[i] = arr[i].second;
//        c[p[0]] = 0;
//        for (int i = 1; i < n; i++) {
//            if (arr[i].first == arr[i - 1].first) {
//                c[p[i]] = c[p[i - 1]];
//            } else {
//                c[p[i]] = c[p[i - 1]] + 1;
//            }
//        }
//    }
//    ll k = 0;
//    while ((1ll << k) < n) {
//        for (int i = 0; i < n; i++) {
//            p[i] = (p[i] + n - (1ll << k)) % n;
//        }
//        count_sort(p, c);
//        vector<ll> c_new(n);
//        c_new[p[0]] = 0;
//        for (int i = 1; i < n; i++) {
//            pair<ll, ll> now = {c[p[i]], c[(p[i] + (1ll << k)) % n]};
//            pair<ll, ll> was = {c[p[i - 1]], c[(p[i - 1] + (1ll << k)) % n]};
//            if (was == now) {
//                c_new[p[i]] = c_new[p[i - 1]];
//            } else {
//                c_new[p[i]] = c_new[p[i - 1]] + 1;
//            }
//        }
//        c.swap(c_new);
//        k++;
//    }
//    vector<ll> lcp(n);
//    k = 0;
//    for (int i = 0; i < n - 1; i++) {
//        ll pid = c[i];
//        ll prev = p[pid - 1];
//        while (s[i + k] == s[prev + k]) {
//            k++;
//        }
//        lcp[pid] = k;
//        k = max(0ll, k - 1);
//    }
//    return {p, lcp};
//}
//void count_sort(vector<ll> &p, vector<ll> &c) {
//    ll n = p.size();
//    vector<ll> am(n);
//    for (auto e : c) {
//        am[e]++;
//    }
//    vector<ll> pos(n);
//    vector<ll> p_res(n);
//    pos[0] = 0;
//    for (int i = 1; i < n; i++) {
//        pos[i] = pos[i - 1] + am[i - 1];
//    }
//    for (auto e : p) {
//        p_res[pos[c[e]]] = e;
//        pos[c[e]]++;
//    }
//    p.swap(p_res);
//}
//
//pair<vector<ll>, vector<ll>> suf_arr(string &s) {
//    s += "$";
//    ll n = s.length();
//    vector<ll> p(n), c(n);
//    {
//        vector<pair<char, ll>> arr(n);
//        for (int i = 0; i < n; i++)arr[i] = {s[i], i};
//        sort(all(arr));
//        for (int i = 0; i < n; i++) {
//            p[i] = arr[i].second;
//        }
//        c[p[0]] = 0;
//        for (int i = 1; i < n; i++) {
//            if (arr[i].first == arr[i - 1].first) {
//                c[p[i]] = c[p[i - 1]];
//            } else {
//                c[p[i]] = c[p[i - 1]] + 1;
//            }
//        }
//    }
//    ll k = 0;
//    while ((1 << k) < n) {
//        for (int i = 0; i < n; i++) {
//            p[i] = (p[i] - (1 << k) + n) % n;
//        }
//        count_sort(p, c);
//        vector<ll> c_new(n);
//        c_new[p[0]] = 0;
//        for (int i = 1; i < n; i++) {
//            pair<ll, ll> was = {c[p[i - 1]], c[(p[i - 1] + (1 << k)) % n]};
//            pair<ll, ll> now = {c[p[i]], c[(p[i] + (1 << k)) % n]};
//            if (now == was) {
//                c_new[p[i]] = c_new[p[i - 1]];
//            } else {
//                c_new[p[i]] = c_new[p[i - 1]] + 1;
//            }
//        }
//        c.swap(c_new);
//        k++;
//    }
//    vector<ll> lcp(n);
//    k = 0;
//    for (int i = 0; i < n - 1; i++) {
//        ll id = c[i];
//        ll pid = p[id - 1];
//        while (s[i + k] == s[pid + k]) {
//            k++;
//        }
//        lcp[id] = k;
//        k = max(0ll, k - 1);
//    }
//    return {p, lcp};
//}
//const ll mod = 998244353;
//ll len = (mod-1)&(-(mod-1));
//ll LOG_gl = 23;
//ll base_gl = 31;
//vector<ll> bit_rev(ll n, ll log){
//    vector<ll> rev(n);
//    ll k = 0 ;
//    for(ll i =1 ; i < n; i ++){
//        rev[i]  = rev[i^(1ll<<k)] ^ (1ll<<(log-k-1));
//        if(!((i+1)&(i)))k++;
//    }
//    return rev;
//}
//vector<ll> get_w(ll n,ll log){
//    ll base = bin_pow(base_gl,(1ll<<(LOG_gl - log)),mod);
//    vector<ll> w(n);
//    w[0] =1;
//    for(int i = 1; i < n ; i ++){
//        w[i] = (w[i-1] * base)%mod;
//    }
//    return w;
//}
//ll w(ll pow, ll base, vector<ll> &ws, ll N){
//    return ws[pow*N/base];
//}
//void butterfly(ll &a, ll &b, ll w){
//    ll x = (a +b*w%mod)%mod;
//    ll y = (a + mod - b*w%mod)%mod;
//    a = x;
//    b = y;
//}
//vector<ll> fft(vector<ll> &a,ll n, ll LOG , bool back){
//    const ll nrev = bin_pow(n,mod-2,mod);
//    auto rev = bit_rev(n,LOG);
//    vector<ll> temp =a;
//    for(int i = 0 ; i < n; i ++){
//        temp[rev[i]] = a[i];
//    }
//    a.swap(temp);
//    auto ws = get_w(n,LOG);
//    for(ll dl = 1; dl < n; (dl <<=1)){
//        for(int i = 0 ; i < n ; i +=2*dl){
//            for(ll k = 0 ; k < dl ; k ++){
//                butterfly(a[i+k], a[i+dl + k], w(k,2*dl,ws,n));
//            }
//        }
//    }
//    if(back){
//        for(int i = 0 ; i < n; i ++){
//            (a[i] *=nrev)%=mod;
//        }
//        reverse(a.begin()+1,a.end());
//    }
//    return a;
//}
//vector<ll> mult(vector<ll> &a,vector<ll> &b){
//    ll n = a.size() + b.size();
//    while(n&(n-1)){
//        n++;
//    }
//    a.resize(n);
//    b.resize(n);
//    ll t = 0 , temp_c = n;
//    while(temp_c > 1){
//        t++;
//        temp_c>>=1;
//    }
//    a = fft(a,n,t,false);
//    b = fft(b,n,t,false);
//    for(int i = 0 ; i < n ; i ++){
//        (a[i]*=b[i])%=mod;
//    }
//    return fft(a,n,t,true);
//}

//pair<vector<ll>, vector<ll>> manaker(string &s) {
//    ll n = s.length();
//    ll l = 0;
//    ll r = -1;
//    vector<ll> d1(n);
//    for (int i = 0; i < n; i++) {
//        ll k = i > r ? 1 : min(d1[l + r - i], r - i + 1);
//        while (i + k < n && i - k >= 0 && s[i + k] == s[i - k]) {
//            k++;
//        }
//        d1[i] = k;
//        if (i + k - 1 > r) {
//            r = i + k - 1;
//            l = i - k + 1;
//        }
//    }
//
//    vector<ll> d2(n);
//    l = 0;
//    r = -1;
//    for (int i = 0; i < n; i++) {
//        ll k = i > r ? 0 : min(d2[l + r - i + 1], r - i + 1);
//        while (i + k < n && i - k - 1 >= 0 && s[i + k] == s[i - k - 1]) {
//            k++;
//        }
//        d2[i] = k;
//        if (i + k - 1 > r) {
//            r = i + k - 1;
//            l = i - k;
//        }
//    }
//    return {d1, d2};
//}
//
//vector<ll> pref(string &s) {
//    ll n = s.length();
//    vector<ll> p(n);
//    p[0] = 0;
//    for (int i = 1; i < n; i++) {
//        ll j = p[i - 1];
//        while (j > 0 && s[j] != s[i]) {
//            j = p[j - 1];
//        }
//        if (s[i] == s[j])j++;
//        p[i] = j;
//    }
//    return p;
//}
//
//vector<ll> zf(string &s) {
//    ll n = s.length();
//    vector<ll> z(n);
//    ll l = 0;
//
//    ll r = 0;
//    for (int i = 1; i < n; i++) {
//        z[i] = i > r ? 0 : min(z[i - l], r - i + 1);
//        while (z[i] + i < n && s[z[i]] == s[z[i] + i]) {
//            z[i]++;
//        }
//        if (z[i] + i - 1 > r) {
//            l = i;
//            r = z[i] + i - 1;
//        }
//    }
//    return z;
//}
//const ll MAXN = 1e5;
//struct vertex{
//    map<char,int> next;
//    bool target=false;
//    bool realtarget = false;
//    int parent=0;
//    int suf_link = 0;
//};
//struct aho_korasik{
//
//    int sz;
//    vector<vertex> vert;
//    aho_korasik(){
//        vert.resize(MAXN);
//        sz = 2;
//        for(int i = CHAR_MIN; i <=CHAR_MAX;i ++){
//            vert[0].next[i]=1;
//        }
//    }
//    void add_str(const string& s){
//        if(s.empty())return;
//        int v = 1;
//        for(int i = 0 ; i < s.length() ; i ++){
//            if(vert[v].next.find(vert[v].next[s[i]]) == vert[v].next.end()){
//                vert[sz].parent = v;
//                vert[v].next[s[i]] = sz;
//                sz++;
//            }
//            v = vert[v].next[s[i]] ;
//        }
//        vert[v].realtarget = true;
//        vert[v].target = true;
//    }
//    void build_suf_links(){
//        queue<int> q;
//        q.push(1);
//        while(!q.empty()){
//            ll v = q.front();
//            q.pop();
//            if(vert[vert[v].suf_link].target){
//                vert[v].target = true;
//            }
//            for(auto &e : vert[v].next){
//                q.push(e.second);
//                int p = vert[v].suf_link;
//                while(vert[p].next.find(e.first) == vert[p].next.end()){
//                    p = vert[p].suf_link;
//                }
//                vert[e.second].suf_link = vert[p].next[e.first];
//
//            }
//        }
//    }
//};

//const ll MAXN = 4e5 + 100;
//vector<pair<ll, ll>> t;
//vector<ll> d;
//
//void push(ll v, ll vl, ll vr) {
//    if (d[v] != -1) {
//        if (vl == vr) {
//            t[v].second = t[v].first = 0;
//        } else {
//            d[2 * v + 1] = d[2 * v + 2] = d[v];
//            t[v].second = t[v].first = 0;
//        }
//        d[v] = -1;
//    }
//}
//pair<ll,ll> get(ll v, ll vl, ll vr ,ll l , ll r){
//    if(l>r)return{0,0};
//    push(v, vl, vr);
//    if (vr < l || vl > r) {
//        return{0,0};
//    }
//    if (l <= vl && vr <= r) {
//        return t[v];
//    }
//    ll m = (vl + vr) / 2;
//    auto f = get(2 * v + 1, vl, m, l, r);
//    auto s = get(2 * v + 2, m + 1, vr, l, r);
//    return {f.first+s.first,s.second+f.second};
//}
//void del(ll v, ll vl, ll vr, ll l, ll r) {
//    if(l>r)return;
//    push(v, vl, vr);
//    if (vr < l || vl > r) {
//        return;
//    }
//    if (l <= vl && vr <= r) {
//        d[v] = 0;
//        push(v, vl, vr);
//        return;
//    }
//    ll m = (vl + vr) / 2;
//    del(2 * v + 1, vl, m, l, r);
//    del(2 * v + 2, m + 1, vr, l, r);
//    t[v].second = t[2 * v + 1].second + t[2 * v + 2].second;
//    t[v].first = t[2 * v + 1].first + t[2 * v + 2].first;
//}
//
//void add(ll v, ll vl, ll vr, ll pos, ll val, ll am) {
//    push(v, vl, vr);
//    if (vl == vr) {
//        t[v].second += val;
//        t[v].first += am;
//        return;
//    }
//    ll m = (vl + vr) / 2;
//    if (pos <= m) {
//        add(2 * v + 1, vl, m, pos, val,am);
//    } else {
//        add(2 * v + 2, m + 1, vr, pos, val,am);
//    }
//    push(2*v+1,vl,m);
//    push(2*v+2,m+1,vr);
//    t[v].second = t[2 * v + 1].second + t[2 * v + 2].second;
//    t[v].first = t[2 * v + 1].first + t[2 * v + 2].first;
//}
//ll am_grans(string s){
//    ll n = s.length();
//    ll answer =0 ;
//    for(int i = 1 ; i < n; i ++){
//        if(s.substr(0,i) == s.substr(n-i,i)){
//            answer++;
//        }
//    }
//    return answer;
//}
int main() {
//    freopen("D:/CLionProjects/strings.txt","r",stdin);
//    freopen("D:/CLionProjects/res2.txt","w",stdout);
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    ll t;
    cin>>t;
    while(t--){
        ll n;
        cin>>n;
        vector<ll> arr(n);
        cin>>arr;
        if(n == 1){
            cout<<arr<<"\n";
            continue;
        }
        sort(all(arr));
        vector<ll> res(n);
        for(int i =0 ; i < n/2; i ++){
            res[2*i] = arr[n-1-i];
            res[2*i+1] = arr[i];
        }
        if(n&1){
            res[n-1] = arr[n/2];
        }
        reverse(all(res));
        bool b = false;
        for(int i = 2; i < n &&!b; i ++){
            if(abs(res[i]-res[i-1]) < abs(res[i-1]-res[i-2])){
                b = true;
            }
        }
        if(b){
            vector<ll> res(n);
            for(int i =0 ; i < n/2; i ++){
                res[2*i] = arr[i];
                res[2*i+1] = arr[n-1-i];
            }
            if(n&1){
                res[n-1] = arr[n/2];
            }
            reverse(all(res));
            cout<<res<<"\n";
        }else{
            cout<<res<<"\n";
        }

    }
    return 0;
}