/*
描述
对于一个字符串,将其后缀子串进行排序,例如grain 其子串有: grain rain ain in n 然后对各子串按字典顺序排序,即: ain,grain,in,n,rain
输入描述:
每个案例为一行字符串。
输出描述:
将子串排序输出
*/

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>

using namespace std;


int main() {
    string s;
    cin >> s;
    vector<string> a(s.size());
    for (int i = 0; i < s.size(); i++)
    {
        a[i] = s.substr(i, s.size() - i);
    }
    sort(a.begin(), a.end());
    for (int i = 0; i < s.size(); i++)
    {
        cout << a[i] << endl;
    }
    return 0;
}