#include<iostream>
#include<cstring>
#include<string>
using namespace std;
//ツ暗ェツ牌ツ嘉つヲツづゥ
//ツ禿アツ牌ツ個クツづァツつキ
//ツ全ツ探ツ催オ
int func(int t[],int pre){
	if(pre==0)
	return 1;
	for(int i=0;i<10;i++){
		if(t[i]>=3){
			t[i]-=3;
			if(func(t,pre-3))
				return 1;
			t[i]+=3;
		}else if(t[i]>=1&&t[i+1]>=1&&t[i+2]>=1){
			t[i]-=1;t[i+1]-=1;t[i+2]-=1;
			if(func(t,pre-3))
				return 1;
			t[i]+=1;t[i+1]+=1;t[i+2]+=1;
		}
	}
	return 0;
}
//0 1 2 3 4 5 6 7 8 9 0 0
//1 2 3 4 5 6 7 8 9 10 11 12
void solve(int t[]){
	int now=0,ans[9],w[11];
	for(int i=0;i<11;i++)
	w[i]=t[i];
	for(int i=0;i<9;i++){
		if(t[i]+1>4)
		continue;
		t[i]++;
		for(int j=0;j<9;j++){
			if(t[j]>1){
				t[j]-=2;
				if(func(t,12)){
					ans[now++]=i+1;
					t[j]+=2;
					break;
				}
				t[j]+=2;
			}
		}
		t[i]--;
		for(int g=0;g<11;g++)
		t[g]=w[g];
	}
	
	
	if(now>0)
	cout<<ans[0];
	else cout<<0;
	for(int i=1;i<now;i++)
	cout<<' '<<ans[i];
	cout<<endl;
}
int main(){
	int t[11];
	string s;
	while(cin>>s){
		memset(t,0,sizeof(t));
		for(int i=0;i<(int)s.size();i++)
			t[s[i]-'0'-1]++;
		solve(t);
	}
	return 0;
}