#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e9 + 7;
const int N = 1e3 + 10;
int a[N];
void init() {
  for (int i = 0; i < 10; i++) a[i + '0'] = i;
  for (int i = 0; i < 26; i++) a[i + 'A'] = i + 10;
}
long long check(string &s, int b) {
  long long ret = 0;
  for (auto &c : s) {
    ret *= b;
    ret += a[c];
    if (a[c] >= b) return -1;
  }
  return ret;
}
int main() {
  init();
  string str;
  cin >> str;
  int o = str.find(':');
  string s1 = str.substr(0, o);
  string s2 = str.substr(o + 1);
  vector<int> ans;
  for (int i = 1; i <= 1000; i++) {
    long long h = check(s1, i);
    long long m = check(s2, i);
    if (h >= 24) break;
    if (m >= 60) break;
    if (h >= 0 && m >= 0) ans.push_back(i);
  }
  if (ans.empty())
    cout << 0 << endl;
  else if (ans.back() == 1000)
    cout << -1 << endl;
  else
    for (auto &x : ans) cout << x << ' ';
  return 0;
}
