#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;
}