//////////////////////////////////////////////////////////////////////////////////////////////////////
//字符串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;
}
}
}