#include <bits/stdc++.h>
using namespace std;
string h, m;
int tem, i, w;
bool check(int oo) {
  int i;
  long long temm = 0;
  long long temh = 0;
  for (i = 0; i < h.size(); ++i) {
    if (h[i] >= 'A' && h[i] <= 'Z') {
      temh = temh * oo + h[i] - 'A' + 10;
    } else {
      temh = temh * oo + h[i] - '0';
    }
  }
  for (i = 0; i < m.size(); ++i) {
    if (m[i] >= 'A') {
      temm = temm * oo + m[i] - 'A' + 10;
    } else {
      temm = temm * oo + m[i] - '0';
    }
  }
  return (temh < 24 && temm < 60);
}
int main() {
  cin >> h;
  tem = h.find(':');
  m = h.substr(tem + 1);
  h = h.substr(0, tem);
  if (check(10000)) {
    printf("-1");
    return 0;
  }
  w = 0;
  for (i = 0; i < h.size(); ++i) {
    if (h[i] >= 'A') {
      w = max(w, h[i] - 'A' + 11);
    } else {
      w = max(w, h[i] - '0' + 1);
    }
  }
  for (i = 0; i < m.size(); ++i) {
    if (m[i] >= 'A') {
      w = max(w, m[i] - 'A' + 11);
    } else {
      w = max(w, m[i] - '0' + 1);
    }
  }
  if (check(w)) {
    printf("%d", w);
  } else {
    printf("0");
    return 0;
  }
  while (1) {
    if (check(++w)) {
      printf(" %d", w);
    } else {
      return 0;
    }
  }
  return 0;
}
