#include<bits/stdc++.h>
using namespace std;
// 比较两个字符串的大小
bool isbigger(const string& a, const string& b) {
return a > b; // 直接使用字符串的比较运算符
}
int main() {
string str;
while (cin >> str) {
int len = str.length();
vector<string> result(len); // 使用vector来存储子串,避免手动管理内存
// 生成所有子串
for (int i = 0; i < len; i++) {
result[i] = str.substr(i); // 使用substr函数生成子串
}
// 对子串进行排序
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - i - 1; j++) {
if (isbigger(result[j], result[j + 1])) {
swap(result[j], result[j + 1]); // 使用swap函数交换字符串
}
}
}
// 输出排序后的子串
for (int i = 0; i < len; i++) {
cout << result[i] << endl;
}
}
return 0;
}