#include <iostream>
#include<string>
#include<algorithm>
using namespace std;
struct word{
char *str;
int index;
};
struct DupArray{
struct word* array;
int size;
};
struct DupArray* CreateDupArray(char **str,int size)
{
struct DupArray node1;
struct DupArray* node=&node1;
node->array=new word[size+1];
node->size=size;
int i,j;
for(i=0;i<size;i++)
{
int l=sizeof(str[i]);
node->array[i].str=new char[l+1];
node->array[i].str=str[i];
node->array[i].index=i;
}
return node;
}
bool comp(const void *a,const void *b)
{
return (*(char *)a)<(*(char*)b);
}
/*bool compStruct(const void *a,const void *b)
{
struct word * a1=(struct word *)a;
struct word * b1=(struct word *)b;
string str1=a1->str;
string str2=b1->str;
return str1.compare(str2)>0;
}*/
void printCountAllAnagrams(char **array,int size)
{
cout<<"inside \n";
struct DupArray *pointer=CreateDupArray(array,size);
cout<<"inside **\n";
int i,j;
for(i=0;i<size;i++)
{
std::sort(pointer->array[i].str,pointer->array[i].str+sizeof(pointer->array[i].str));
}
// std::sort(pointer->array,pointer->array+size,compStruct);
/*for(i=0;i<size;i++)
{
cout<<""<<array[pointer->array[i].index]<<" ";
}*/
int *CountArray=new int[size+1];
for(i=0;i<size;i++)CountArray[i]=0;
cout<<"kasjdhadh"<<"\n";
/* for(i=0;i<size-1;i++)
{
for(j=i+1;j<size;j++)
{
if(CountArray[j]==-1)continue;
// if((pointer->array[i].str).compare(pointer->array[i].str)==0)
if((pointer->array[i].str)==(pointer->array[j].str))
{
CountArray[i]++;
CountArray[j]=-1;
}
}
}
std::sort(CountArray,CountArray+size);*/
for(i=0;i<size;i++)
{
if(CountArray[i]==-1)continue;
else
{
cout<<CountArray[i]<<" ";
}
}
cout<<"\n";
return;
}
int main() {
int t,i,j,k,n;
// cout<<"sds\n";
cin>>t;
// cout<<"t ="<<t<<"\n";
for(i=0;i<t;i++)
{
cin>>n;
cout<<"\n n="<<n<<"\n";
char **array=new char*[n+1];
for(j=0;j<n+1;j++)array[j]=new char[1000000];
string *str=new string[n+1];
cin.ignore();
string str1;
// for(j=0;j<n;j++)
// {
//cin>>array[j];
//cin>>str1;
getline(cin,str1,'\n');
str1+=" ";
k=0;int f=0;
// cout<<"###***"<<str1<<"***\n";
for(j=0;j<str1.size();j++)
{
if(str1[j]==' '){array[k][j]='\0';k++;f=0;continue;}
else array[k][f++]=str1[j];
}
// cout<<"\n^%$^&***\n";
for(k=0;k<n;k++)cout<<""<<array[k]<<" ";
// cout<<"\n^%$^&***";
// cin.ignore();
//for(k=0;k<str1.size();k++)array[j][k]=str1[k];
// cout<<"***"<<str1<<"***\n";
//array[j]=str1.c_str();
//cout<<"***"<<str[j]<<"***\n";
// cout<<"***"<<array[j]<<"***\n";
// }
// cin.ignore();
// cout<<"\n adakdh\n";
//printCountAllAnagrams(array,n);
}
//code
return 0;
}