#include<bits/stdc++.h>
#define rep(i,n)for(int i=0;i<n;i++)
using namespace std;

int d[14];
bool used[14];
bool solve(int p, int cnt, bool r) {
	bool ok = false;
	if (cnt == 3) {
		int f = -1, s = -1;
		rep(i, 14) {
			if (!used[i]) {
				if (f == -1)f = d[i];
				else if (s == -1)s = d[i];
				else ok = true;
			}
		}
		if (!ok) {
			if (f == s)return true;
			return false;
		}
		ok = true; cnt = 0;
	}
	rep(i, 14) {
		if (!used[i] && (ok || (r&&d[i] == p + 1) || (!r&&d[i] == p))) {
			used[i] = true;
			if (solve(d[i], cnt + 1, r))return true;
			if (ok) {
				if (solve(d[i], cnt + 1, !r))return true;
			}
			used[i] = false;
		}
	}
	return false;
}
int main(){
	while (1) {
		int cnt[10]{};
		rep(i, 13) {
			if (!~scanf("%1d", &d[i]))return 0;
			cnt[d[i]]++;
		}
		bool flag = false;
		for (int i = 1; i <= 9; i++) {
			if (cnt[i] >= 4)continue;
			d[13] = i;
			memset(used, 0, sizeof(used));
			if (solve(0, 3, 0)) {
				if (flag)printf(" ");
				printf("%d", i);
				flag = true;
			}
		}
		if (!flag)printf("0");
		printf("\n");
	}
}