#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
****************************************************************/