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