//////////////////////////////////////////////////////////////////////////////////////////////////////
//字符串sort函数,#4
////////////////////////////////////////////////////////////////////////////////////////////////////

#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>

using namespace std;

bool Compare(string x,string y)
{
    int i;
    for(i=0;i<x.size()&&i<y.size(); ++i)
    {
        if(x[i]!=y[i])
        {
            return x[i]<y[i];
        }

    }
    return i==x.size();    //前面都相等的话,短的那个放前面 #1
}

int main()
{
    string str;

    while(cin>>str)
    {
        string substr[str.size()];    //这个肯定得知道str长度之后,才能用 #2
        for(int i=0; i<str.size(); ++i)
        {
            substr[i]=str.substr(i);
        }
        sort(substr,substr+str.size(),Compare);    //能用sort,放心用#3
//         sort(substr,substr+str.size(),1);    //这个不能这么写,最后一个位置必须写函数 #4

        for(int i=0; i<str.size(); ++i)
        {
            cout<<substr[i]<<endl;
        }
    }
}