#include <iostream>

using namespace std;

void loadData(int *data,int *cData){
	for(int i=0;i<=9;i++){
		cData[i] = data[i];
	}
}

int main(){

	//dataが固定用。aData,bDataを変化させて行う。aDataは頭を固定しbDataにてへんか
	int data[9+1];
	int aData[9+1];
	int bData[9+1];
	int cData[9+1];
	int ansData[9+1];
	int ansState=0;
	int ansCnt = 0;
	char tmp;
	while(cin>>tmp){
		int flag = 0;
		ansState = 0;
		ansCnt = 0;
		for(int i=0;i<=9;i++){
			data[i]=0;
			ansData[i]=0;
		}
		//データ入力
		data[tmp-'0']++;
		for(int i=1;i<13;i++){
			cin>>tmp;
			data[tmp-'0']++;
		}
		int head,sum;
		//なにを追加するのかのループ
		for(int i=1;i<=9;i++){
			head=0;
			sum = 0;
			loadData(data,aData);
			if(aData[i]==4){
				continue;
			}
			aData[i]++;
			//頭をまず考える。
			for(int j=1;j<=9;j++){
				head = 0;
				sum = 0;
				loadData(aData,bData);
				if(bData[j]-2>=0){
					//cout<<"head is "<<j<<endl;
					head++;
					bData[j]-=2;
				}
				for(int l=0;l<2;l++){
					sum = 0;
					if(l==0){
						loadData(bData,cData);
						//さらに階段状
						for(int k=1;k<=7;k++){
							if(cData[k] && cData[k+1] && cData[k+2]){
								cData[k]--;
								cData[k+1]--;
								cData[k+2]--;
								sum++;
								k=0;
							}
						}

						//その後3つあるものを考える。
						for(int k=1;k<=9;k++){
							if(cData[k]-3>=0){
								cData[k]-=3;
								sum++;
								//cout<<"triple,k = "<<k<<" sum = "<<sum<<endl;
							}
						}
					//	cout<<"i ="<<i<<"head = "<<head<<"sum = "<<sum<<endl;
						if(head==1 && sum == 4){
							ansData[i]++;
							ansCnt++;
						}
					}
					else{
						loadData(bData,cData);
						//その後3つあるものを考える。
						for(int k=1;k<=9;k++){
							if(cData[k]-3>=0){
								cData[k]-=3;
								sum++;
					//			cout<<"triple,k = "<<k<<" sum = "<<sum<<endl;
							}
						}
						//さらに階段状
						for(int k=1;k<=7;k++){
							if(cData[k] && cData[k+1] && cData[k+2]){
								cData[k]--;
								cData[k+1]--;
								cData[k+2]--;
								sum++;
								k=0;
							}
						}
					//	cout<<"i ="<<i<<"head = "<<head<<"sum = "<<sum<<endl;
						if(head==1 && sum == 4){
							ansData[i]++;
							ansCnt++;
						}
					}
				}
			}
		}
		for(int i=1;i<=9;i++){
			if(ansData[i]){
				ansState++;
				if(ansCnt>ansState-1){
					cout<<i<<" ";
				}
				else{
					cout<<i;
				}
			}
		}
		if(ansState==0){
			cout<<"0";
		}
		cout<<endl;
	}
	return 0;
}

/*
Sample Input
3649596966777
6358665788577
9118992346175
9643871425498
7755542764533
1133557799246
Output for the Sample Input
2 3 5 8
3 4
1 2 3 4 5 6 7 8 9
7 8 9
1 2 3 4 6 7 8
0
*/