#include <bits/stdc++.h>
using namespace std;
const int maxN = 100000 + 100;
char a[maxN];
int n;
int z, o, q;
void check(int k) {
  int qt = q;
  int zt = z;
  int ot = o;
  if (a[n - 1] == '?') {
    qt--;
    if (k == 1)
      ot++;
    else
      zt++;
  }
  if (abs(zt + n % 2 - ot) > qt) return;
  qt -= (abs(zt + n % 2 - ot));
  if (qt % 2 == 0) {
    if (k == 1)
      puts("01");
    else
      puts("10");
  }
}
int main() {
  scanf("%s", a);
  n = strlen(a);
  z = 0, o = 0, q = 0;
  for (int i = 0; i < n; i++) {
    z += a[i] == '0';
    o += a[i] == '1';
    q += a[i] == '?';
  }
  if (q + z > o - n % 2) puts("00");
  if (a[n - 1] == '1') {
    check(1);
  } else if (a[n - 1] == '0') {
    check(0);
  } else {
    check(1);
    check(0);
  }
  if (q + o > z + n % 2) puts("11");
  return 0;
}
