/*
* Poj_1007.cpp
*
* Created on: November 4, 2013
* Author: administrator
*/
#include <iOSTREAM>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;
const into maxn = 105;
struct dNA {
String Str;
int Num;
} dnas [maxn];
BOOL CMP (Const DNA & A, Const DNA & B) {{
Return a.num <b.num;
}
int Main () {
int n, m;
While (Scanf ("%D%D", & N, & M)! = EOF) {
int i;
for (i = 0; i <m; ++ i) {
cin >> dnas [i] .str;
dnas [i] .num = 0;
int j, k;
for (k = 0; k <n; ++ k) {// bubbling sorting
for (j = k +1; j <n; ++ j) {
if (dnas [i] .str [k]> dnas [i] .str [j]) {
dnas [i] .num ++; // Reverse order pair +1
}
}
}
}
sort (DNAS, DNAS+M, CMP);
for (i = 0; i <m; ++ i) {
core << dnas [i] .str << Endl;
}
}
Return 0;
}