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

using namespace std;

char Change(int n){
    return ('a'+n-1);
}

vector<vector<char> > ves;
vector<char> res;

void DFS(string str){
    if(str.size()==0){
        ves.push_back(res);
        return;
    }

    res.push_back(Change(str[0]-'0'));
    DFS(str.substr(1,str.size()-1));
    res.pop_back();

    if(str.size()>=2){
        string t=str.substr(0,2);
        int n=atoi(t.c_str());
        if(n<=26){
            res.push_back(Change(n));
            DFS(str.substr(2,str.size()-2));
            res.pop_back();
        }
    }
}

int main(){
    string ss;
    cin>>ss;
    DFS(ss);
    int i,j;
    for(i=0;i<(ves.size()-1);++i){
        for(j=0;j<ves[i].size();++j){
            cout<<ves[i][j];
        }
        cout<<" ";
    }
    for(j=0;j<ves[i].size();++j){
        cout<<ves[i][j];
    }
    cout<<endl;
    return 0;
}

谁能帮忙看看哪里不对。 用例都结果都对,就是通过率为0%