#include <bits/stdc++.h>
using namespace std;

vector <string> Get_subsequence_of_string(string str){
    // Base case of the following problem;
    if(str.length() == 0){
        vector <string> Base_result;
        Base_result.push_back("");
        return Base_result;
    }
    // Recursive case of the following problem;
    char ch = str.at(0); // a
    string return_of_string = str.substr(1); // bc
    vector <string> recursive_result = Get_subsequence_of_string(return_of_string);
    vector <string> my_result;
    for (string rstr : recursive_result)
    {
        /* code */
        my_result.push_back("" + rstr);
    }
    for (string rstr : recursive_result)
    {
        /* code */
        my_result.push_back(ch + rstr);
    }
    return my_result;
}

int main(){
    string str;
    cin>>str;
    vector <string> result = Get_subsequence_of_string(str);
    int count = 0;
    cout<<"[";
    for (string s : result)
    {
        /* code */
        if(count != result.size() - 1)
        cout<<s<<", ";
        else
        cout<<s;
        count++;
    }
    cout<<"]";
    return 0;
    
}