#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> a(14),b(14);
bool five();
bool tempy(int x, int y);
int main(){
  for(;;){
    vector<int> ans;
    if(scanf("%1d",&a[0]) == EOF) break;
    for(int i=1; i<13; i++) scanf("%1d",&a[i]);
    for(int i=1; i<=9; i++){
      a[13] = i;
      for(int j=0; j<14; j++) b[j] = a[j];
      sort(b.begin(),b.end());
      if(five()) continue;
      if(tempy(1,4)) ans.push_back(i); 
    }
    if(ans.empty()) ans.push_back(0);
    for(int i=0; i<ans.size(); i++){
      if(i != 0) cout <<" ";
      cout <<ans[i];
    }
    cout <<endl;
  }
  return 0;
}
bool five(){
  for(int i=0,j=0,k=0; i<14; i++){
    if(b[i] != j){j=b[i];k = 1;}
    else k++;
    if(k == 5) return true;
  }
  return false;
}
bool tempy(int x, int y){
  if(x == 0 && y == 0) return true;
  for(int i=0; i<14; i++){
    if(b[i] == 0) continue;
    if(x != 0){
      for(int j=i+1; j<14; j++){
	if(b[i] != b[j]) continue;
	int q = b[i];
	b[i] = b[j] = 0;
	if(tempy(0,y)) return true;
	b[i] = b[j] = q;
	break;
      }
    }
    if(y != 0){
      for(int j=i+1; j<14; j++){
	if(b[i] != b[j]) continue;
	for(int k=j+1; k<14; k++){
	  if(b[i] != b[k]) continue;
	  int q = b[i];
	  b[i] = b[j] = b[k] = 0;
	  if(tempy(x,y-1)) return true;
	  b[i] = b[j] = b[k] = q;
	  goto flag_pon;
	}
      }
    flag_pon:;
      for(int j=i+1; j<14; j++){
	if(b[i]+1 != b[j]) continue;
	for(int k=j+1; k<14; k++){
	  if(b[i]+2 != b[k]) continue;
	  int q = b[i];
	  b[i] = b[j] = b[k] = 0;
	  if(tempy(x,y-1)) return true;
	  b[i] = q;b[j] = q+1;b[k] = q+2;
	  goto flag_chi;
	}
      }
    flag_chi:;
    }
  }
  return false;
}