#include <iostream>
#include <array>
#include <algorithm>
#include <cstring>
#include <string>
#include <vector>
using namespace std;

vector<int> solve(array<int,10> table){
    array<int,10> tmp,tmp2,tmp3;
    vector<int> v;

    for(int i=1;i<=9;i++){
        int p,j,k;

        tmp=table;
        if(++tmp[i]>4) continue;

        for(j=1;j<=9;j++){
            if(tmp[j]>=2){
                p=0;
                tmp2=tmp;
                tmp2[j]-=2;
                tmp3=tmp2;

                for(k=1;k<=9;k++){
                    if(k>2 && tmp2[k]>0 && tmp2[k-1]>0 && tmp2[k-2]>0){
                        tmp2[k]--;tmp2[k-1]--;tmp2[k-2]--;
                        p++;
                    }
                    if(k<9 && k>1 && tmp2[k]>0 && tmp2[k+1]>0 && tmp2[k-1]>0){
                        tmp2[k]--;tmp2[k+1]--;tmp2[k-1]--;
                        p++;
                    }
                    if(k<8 && tmp2[k]>0 && tmp2[k+1]>0 && tmp2[k+2]>0){
                        tmp2[k]--;tmp2[k+1]--;tmp2[k+2]--;
                        p++;
                    }
                }

                for(k=1;k<=9;k++){
                    if(tmp2[k]>=3){
                        p++;
                        tmp2[k]-=3;
                    }
                }

                if(p==4) break;

                p=0;
                for(k=1;k<=9;k++){
                    if(tmp3[k]>=3){
                        p++;
                        tmp3[k]-=3;
                    }
                }

                for(k=1;k<=9;k++){
                    if(k>2 && tmp3[k]>0 && tmp3[k-1]>0 && tmp3[k-2]>0){
                        tmp3[k]--;tmp3[k-1]--;tmp3[k-2]--;
                        p++;
                    }
                    if(k<9 && k>1 && tmp3[k]>0 && tmp3[k+1]>0 && tmp3[k-1]>0){
                        tmp3[k]--;tmp3[k+1]--;tmp3[k-1]--;
                        p++;
                    }
                    if(k<8 && tmp3[k]>0 && tmp3[k+1]>0 && tmp3[k+2]>0){
                        tmp3[k]--;tmp3[k+1]--;tmp3[k+2]--;
                        p++;
                    }
                }

                if(p==4) break;
            }
        }

        if(p==4){
            v.push_back(i);
        }
    }

    if(v.empty()){
        v.push_back(0);
    }

    return v;
}

int main(){
    string hand;
    vector<int> v;

    while(cin>>hand){
        array<int,10> table;
        table.fill(0);

        for(auto c:hand){
            table[c-'0']++;
        }

        v=solve(table);

        cout<<v[0];
        for(int i=1;i<v.size();i++){
            cout<<" "<<v[i];
        }
        cout<<endl;
    }

    return 0;
}