#include <bits/stdc++.h>
using namespace std;
string hour, minit;
vector<int> ans;
int mypow(int n, int a) {
  if (!a) return 1;
  int x = n;
  for (int i = 1; i < a; i++) x *= n;
  return x;
}
bool valid(int base) {
  int h = 0, m = 0;
  for (int i = hour.size() - 1, j = 0; i >= 0; i--, j++) {
    int t;
    if (hour[i] < 'A')
      t = hour[i] - '0';
    else
      t = hour[i] - 'A' + 10;
    if (t >= base) return false;
    h += (mypow(base, j) * t);
  }
  if (h >= 24) return false;
  for (int i = minit.size() - 1, j = 0; i >= 0; i--, j++) {
    int t;
    if (minit[i] < 'A') {
      t = minit[i] - '0';
    } else
      t = minit[i] - 'A' + 10;
    if (t >= base) return false;
    m += (mypow(base, j) * t);
  }
  if (m >= 60) return false;
  return true;
}
int main() {
  string str;
  int i;
  cin >> str;
  for (i = 0; str[i] != ':'; i++) hour += str[i];
  i++;
  for (; str[i]; i++) minit += str[i];
  for (i = 2; i < 60; i++) {
    if (valid(i)) {
      ans.push_back(i);
    }
  }
  if (valid(60))
    printf("-1");
  else if (ans.size() == 0)
    printf("0");
  else {
    for (i = 0; i < ans.size(); i++) printf("%d ", ans[i]);
  }
  return 0;
}
