#include <stdio.h>
#include <algorithm>
#include <math.h>

using namespace std;

bool isOK(int new_table[10]){
	int trio = 0;

	for(int k=1; k<=7; k++){
		if(new_table[k] > 2){
			trio++;
			new_table[k] -= 3;
		}

		while(new_table[k] > 0 && new_table[k+1] > 0 && new_table[k+2] > 0){
			trio++;
			new_table[k]--;
			new_table[k+1]--;
			new_table[k+2]--;
		}
	}

	for(int k=1; k <= 9; k++){
		if(new_table[k] == 3){
			trio++;
			new_table[k] -= 3;
		}
	}

	if(trio == 4){
		return true;
	}else{
		return false;
	}

}

int main(){

	char buf[14];
	int table[10];
	bool First;

	while(scanf("%s",buf)!=EOF){
		for(int i=1; i < 10; i++)table[i] = 0;

		for(int i=0; buf[i] != '\0';i++)table[buf[i]-'0']++;

		First = true;
		for(int i=1; i <= 9; i++){
			if(table[i] < 4){
				int new_table[10];
				for(int k=1; k <= 9; k++)new_table[k] = table[k];
				new_table[i]++;

				for(int k=1; k <=9; k++){
					if(new_table[k] >= 2){
						int new_table2[10];
						for(int p=1;p<=9;p++)new_table2[p] = new_table[p];
						new_table2[k] -= 2;
						if(isOK(new_table2)){
							if(First){
								printf("%d",i);
								First = false;
							}else{
								printf(" %d",i);
							}
							break;
						}
					}
				}
			}
		}
		if(First){
			printf("0\n");
		}else{
			printf("\n");
		}

	}

	return 0;
}