#include<stdio.h>
#include<stdlib.h>
struct in
{
int x;
char a[55];
}b[103];
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
int i,j,k,t;
for(i=0;i<m;i++)
scanf("%s",b[i].a);
for(i=0;i<m;i++)
{
for(t=0,j=0;j<n;j++)
for(k=j+1;k<n;k++)
if(b[i].a[j]>b[i].a[k]) t++;
b[i].x=t;
}
qsort(b,m,sizeof(b[0]),cmp);
for(i=0;i<m;i++)
printf("%s\n",b[i].a);
}
return 0;
}
#include<stdlib.h>
struct in
{
int x;
char a[55];
}b[103];
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
int i,j,k,t;
for(i=0;i<m;i++)
scanf("%s",b[i].a);
for(i=0;i<m;i++)
{
for(t=0,j=0;j<n;j++)
for(k=j+1;k<n;k++)
if(b[i].a[j]>b[i].a[k]) t++;
b[i].x=t;
}
qsort(b,m,sizeof(b[0]),cmp);
for(i=0;i<m;i++)
printf("%s\n",b[i].a);
}
return 0;
}