//我这个是ac了的

#include <iostream>
#include <string>

using namespace std;

typedef struct{
string str;
int len;
}Sqstack; //随便取得名字

int main()
{
        int n;
        Sqstack *a[1000];
        while(cin>>n){
		if(n==0) return 0; 
        cin.ignore();//后面有getline函数一定要ingnore
        string s;
        for(int i=0;i<n;i++)
        {
                getline(cin,s);
                if(s=="stop")
                {
                        n=i;
                        break;

                }

                else{
                a[i]=new Sqstack;
                a[i]->str=s;
                
                a[i]->len=s.length();
                }
        }//(for)

        Sqstack *b;
        for(int i=0;i<n;i++)
                for(int j=0;j<(n-1);j++)
                {
                        if((a[j]->len)>(a[j+1]->len))
                        {
                                b=a[j];
                                a[j]=a[j+1];
                                a[j+1]=b;
                        }
                            
                }
        

for(int i=0;i<n;i++)
        {
                cout<<a[i]->str<<endl;
        }
}//(while)
        return 0;
}
/**************************************************************
	Problem: 2219
	User: admin
	Language: C++
	Result: Accepted
	Time:9 ms
	Memory:2076 kb
****************************************************************/