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

int c[9];

bool dfs(bool s, int i) {
  if (!s) {
    if (c[i] >= 2) {
      c[i] -= 2;
      if (dfs(true, 1)) return true;
      c[i] += 2;
    }
    if (i<9) {
      if (dfs(false, i+1)) return true;;
    }
  } else {
    if (c[i] && c[i+1] && c[i+2]) {
      int j;
      --c[i]; --c[i+1]; --c[i+2];
      for (j=1; j<=9; j++) {
        if (c[j]%3) break;
      }
      if (j==10) return true;
      if (dfs(true, i)) return true;
      ++c[i]; ++c[i+1]; ++c[i+2];
    }
    if (i<7) {
      if (dfs(true, i+1)) return true;
    }
  }
  return false;
}

int main() {
  char buf[20];
  int count[10];
  bool noans;

  while (fgets(buf, sizeof(buf), stdin)) {
    noans = true;
    memset(count, 0, sizeof(int)*10);
    for (int i=0; i<13; i++) {
      ++count[buf[i] - '0'];
    }
    for (int x=1; x<=9; x++) {
      if (count[x]>=4) continue;
      memcpy(c, count, sizeof(int)*10);
      ++c[x];
      if (dfs(0, 1)) {
        if (!noans) putchar(' ');
        printf("%d", x);
        noans = false;
      }
    }
    if (noans) printf("0");
    printf("\n");
  }
}