process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function (chunk)
{
	chunk = "1112345678999";
	var num = chunk.toString();
	var ans = "";
	for(var i=1;i<=9;i++){
		if(check(num,i))
			ans+= " " + i;
	}
	if(ans!="")
		console.log(ans.substr(1));
	else
		console.log(0);
});
function check(num,wrd){
	var obj = {};
	obj[wrd] = 1;
	for(var i = 0;i<num.length;i++){
		if(obj[num[i]])
			obj[num[i]]++;
		else
			obj[num[i]] = 1;
	}
	for(var i=1;i<=9;i++){
		if(obj[i] >= 5)
			return false;
		if(obj[i] >= 2){
			var obj2 = copy(obj);
			obj2[i] -= 2;
			if(checkPair(copy(obj2)) || checkPair2(copy(obj2)))
				return true;
		}
	}
	return false;
}
function checkPair(obj){
	var paircnt = 0;
	for(var i=1;i<=9;i++){
		if(obj[i] >= 3){
			obj[i] -= 3;
			paircnt++;
		}
	}
	for(var i=1;i<=9;i++){
		if(obj[i] >= 1 && obj[i+1] >= 1 && obj[i+2] >= 1){
			obj[i] -= 1;
			obj[i+1] -= 1;
			obj[i+2] -= 1;
			i--;
			paircnt++;
		}
	}
	if(paircnt==4)
		return true;
	else 
		return false;
}

function checkPair2(obj){
	var paircnt = 0;
	for(var i=1;i<=9;i++){
		if(obj[i] >= 1 && obj[i+1] >= 1 && obj[i+2] >= 1){
			obj[i] -= 1;
			obj[i+1] -= 1;
			obj[i+2] -= 1;
			i--;
			paircnt++;
		}
	}
	for(var i=1;i<=9;i++){
		if(obj[i] >= 3){
			obj[i] -= 3;
			paircnt++;
		}
	}
	if(paircnt==4)
		return true;
	else 
		return false;
}
		
function copy(obj){
	var newObj = {};
	for(var i in obj){
		newObj[i] = obj[i];
	}
	return newObj;
}