#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int Count(const string& a)
{
int count = 0;
for(size_t i=0; i<a.size()-1; i++)
{
for(size_t j=i; j<a.size();j++)
{
if(a[i]>a[j])
count++;
}
}
return count;
}
bool Smaller(string a, string b)
{
return Count(a)<Count(b);
}
void input(vector<string>& svec)
{
svec.clear();
int len;
int count = -1;
string str;
cin>>len>>count;
getline(cin, str);
for(int i=0;i<count;i++)
{
getline(cin, str);
svec.push_back(str);
}
}
void output(vector<string>::const_iterator beg, vector<string>::const_iterator end)
{
while(beg != end)
cout<<*beg++<<endl;
}
int main()
{
int count = -1;
cin>>count;
string str;
getline(cin, str);
vector<string> svec;
vector<vector<string> > ssvec;
for(int i=0;i<count;i++)
{
getline(cin, str);
input(svec);
sort(svec.begin(), svec.end(), Smaller);
ssvec.push_back(svec);
}
vector<vector<string> >::const_iterator iter = ssvec.begin();
if(count>0)
{
output((*iter).begin(), (*iter).end());
++iter;
}
for(int i=1;i<count;i++)
{
cout<<endl;
output((*iter).begin(), (*iter).end());
++iter;
}
return 0;
}