#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;

int main() {
  for(int tci = 0; ; tci++) {
    char s1[15];
    if(scanf(" %s", s1)<1) break;
    vector<int> oks;
    for(int num = 0; num < 9; num++) {
      int histo[9]; fill(histo, histo+9, 0);
      for(int i = 0; i < 13; i++) histo[s1[i]-'1']++;
      histo[num]++;
      for(int i = 0; i < 9; i++) if(histo[i]>4) goto fail;
      for(int num2 = 0; num2 < 9; num2++) {
        int histo2[9]; copy(histo, histo+9, histo2);
        if(histo2[num2]<2) continue;
        histo2[num2]-=2;
        //printf("%d,%d: ",num,num2);
        //for(int i = 0; i < 9; i++) printf("%d,",histo2[i]);printf("\n");
        for(int i = 0; i < 9; i++) {
          if(histo2[i]>=3) histo2[i]-=3;
          while(i<=6 && histo2[i]>0) histo2[i]--,histo2[i+1]--,histo2[i+2]--;
          if(histo2[i]!=0) goto subfail;
        }
        goto succ;
subfail:continue;
      }
fail:continue;
succ:oks.push_back(num);
    }
    if(oks.size()==0) {
      printf("0\n");
    } else {
      for(int i = 0; i < (int)oks.size(); i++) {
        printf("%d%c", oks[i]+1, " \n"[i+1==(int)oks.size()]);
      }
    }
  }
  return 0;
}