#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<vector>

using namespace std;

string str;
int cnt[13];
vector<int> res;
bool f;
void dfs(int v,int a,int m){
	if(f)return;
	if(a==1 && m==4)f=true;
	if(v==10)return;
	if(cnt[v]==0)dfs(v+1,a,m);
	else{
		if(cnt[v]>=2 && a==0){
			cnt[v]-=2;
			dfs(v,a+1,m);
			cnt[v]+=2;
		}
		if(cnt[v]>=3 && m<=3){
			cnt[v]-=3;
			dfs(v,a,m+1);
			cnt[v]+=3;
		}
		if(cnt[v]>=1 && cnt[v+1]>=1 && cnt[v+2]>=1 && m<=3){
			cnt[v]-=1;
			cnt[v+1]-=1;
			cnt[v+2]-=1;
			dfs(v,a,m+1);
			cnt[v]+=1;
			cnt[v+1]+=1;
			cnt[v+2]+=1;
		}
	}
}

int main(void){
	while(cin >> str){
		res.clear();
		for(int i=1;i<=9;i++){
			memset(cnt,0,sizeof(cnt));
			for(int j=0;j<str.size();j++)cnt[str[j]-'0']++;
			if(cnt[i]==4)continue;
			f=false;
			cnt[i]++;
			dfs(1,0,0);
			cnt[i]--;
			if(f)res.push_back(i);
		}
		if(res.size()==0)puts("0");
		else{
			for(int i=0;i<res.size();i++)printf("%d%c",res[i],i==res.size()-1?'\n':' ');
		}
	}
	return 0;
}