#include <stdio.h>
#include <string.h>
struct Number
{
char str[1010];
int l;
};
int main()
{
void sort (struct Number a[],int n);
struct Number a[110];
int n,i;
while (scanf ("%d",&n)!=EOF)
{
getchar();
for (i=0;i<n;i++)
{
gets(a[i].str);
a[i].l=strlen(a[i].str);
a[i].str[a[i].l]='\0';
}
sort(a,n);
for (i=0;i<n;i++)
puts(a[i].str);
}
return 0;
}
void sort (struct Number a[],int n)
{
int i,j;
struct Number t;
for (i=0;i<n-1;i++)
for (j=0;j<n-1-i;j++)
{
if (a[j].l>a[j+1].l)
{
t=a[j]; a[j]=a[j+1]; a[j+1]=t;
}
if (a[j].l==a[j+1].l)
{
if (strcmp(a[j].str,a[j+1].str)>0)
{
t=a[j]; a[j]=a[j+1]; a[j+1]=t;
}
}
}
}
/**************************************************************
Problem: 2202
User: admin
Language: C
Result: Accepted
Time:22 ms
Memory:1148 kb
****************************************************************/