#include<iostream>
#include <string> 
#include<bits/stdc++.h>
using namespace std;
string chartostr(char* p)
{
    string s="";
    while(*p!='\0')
    {
        s=s+*p;
        p++;
    }
   transform(s.begin(), s.end(), s.begin(), ::tolower);
    //cout<<s;
    return s;
    
}
vector<string> inputs(string s)
{
    //cout<<s;
    vector<string> v;
    char a[1000000];
    strcpy(a,s.c_str());
    char* token=strtok(a," ");
    while(token!=NULL)
    {
      //chartostr(token);
        string sh=chartostr(token);
        v.push_back(sh);
        token=strtok(NULL," ");
        //cout<<sh;
    }
    return v;
}
int main()
{
    int t,z;
    string inp;
    getline(cin,inp);
    char b[12];
    strcpy(b,inp.c_str());
    t=(int)atoi(b);
 
    
    for(z=0;z<t;z++)
            {string inu;
            while(inu.length()==0)
        	getline(cin,inu);
        
        //cout<<inp;
        vector<string> stri=inputs(inu);
        vector<int>inte;
        vector<string>str;
        auto i=stri.begin();
        int k=0;
        for(i=stri.begin();i!=stri.end();i++)
        {
             
        
        
            
            
        
            if(k%2==0)
            {
            str.push_back(*i);
                
            }
            else
            {
               
                char a[100000];
                string yo=*i;
                strcpy(a,yo.c_str());
                int f=atoi(a);
            	inte.push_back(f);
                
            }
            k++;
            //cout<<k;
        }
        //cout<<"yooooo";
        sort(str.begin(),str.end());
        sort(inte.begin(),inte.end());
        int j,z=(int)inte.size();
    int it=max(inte.size(),str.size());
        for(j=0;j<it;j++)
        {
            //str[j].erase(remove(str[j].begin(), str[j].end(), ' '), str[j].end());
          if(j<str.size())
              cout<<str[j]<<" ";
           if(j<inte.size())
               cout<<inte[j]<<" ";
        }
     
        cout<<"\n";
       
    }
}