#include <bits/stdc++.h>
using namespace std;
int j, k, m, i, n;
int a[10];
int b[200101], c[200101];
int main() {
  char s[101202];
  cin >> s;
  n = strlen(s);
  int od = 0, nu = 0, f = 0;
  for (i = 0; i < n; ++i)
    if (s[i] == '0')
      nu++;
    else if (s[i] == '1')
      od++;
    else
      ++f;
  if (!(n & 1)) {
    if (nu + f - 2 >= od) cout << "00" << endl;
    if (nu + f >= od && od + f >= nu) {
      if ((nu + f == od) && (s[n - 1] == '1')) cout << "01" << endl;
      if ((nu + f > od) && (s[n - 1] != '0')) cout << "01" << endl;
      if ((od + f > nu) && (s[n - 1] != '1')) cout << "10" << endl;
      if ((od + f == nu) && (s[n - 1] == '0')) cout << "10" << endl;
    }
    if (od + f - 2 >= nu) cout << "11" << endl;
  } else {
    if (nu + f - 1 >= od) cout << "00" << endl;
    if (nu + f >= od - 1 && od + f - 1 >= nu) {
      if ((nu + f == (od - 1)) && (s[n - 1] == '1')) cout << "01" << endl;
      if ((nu + f + 1 > od) && (s[n - 1] != '0')) cout << "01" << endl;
      if ((od + f - 1 > nu) && (s[n - 1] != '1')) cout << "10" << endl;
      if ((od + f - 1 == nu) && (s[n - 1] == '0')) cout << "10" << endl;
    }
    if (od + f - 3 >= nu) cout << "11" << endl;
  }
  return 0;
}
