#include<stdio.h>
#include <math.h>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
struct DNA{
string s;
int cc;
};
bool comp(DNA d1, DNA d2){
return (d1.cc < d2.cc);
}
int count(DNA& dna){
dna.cc = 0;
for (int i =0; i < dna.s.length(); i++)
{
for (int j = i+1; j < dna.s.length();j++)
{
if (dna.s[i] > dna.s[j])
{
dna.cc++;
}
}
}
return 0;
}
int main(){
int n, len;
char c[51];
scanf("%d%d",&len, &n);
vector<DNA> v;
for (int i =0; i < n; i++)
{
scanf("%s", c);
DNA d;
d.s.assign(c);
count(d);
v.push_back(d);
}
sort(v.begin(), v.end(), comp);
for (int i = 0; i < n; i++)
{
puts(v[i].s.c_str());
}
return 0;
}