#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
// 將字元轉換為對應的數值
int charToValue(char c) {
if (isdigit(c)) return c - '0';
if (isupper(c)) return c - 'A' + 10;
if (islower(c)) return c - 'a' + 36;
return -1;
}
int main() {
string s;
while (cin >> s) {
long long sum = 0;
int max_val = 1; // 進位制最小從 2 開始 (即最大位數值為 1)
for (char c : s) {
int v = charToValue(c);
if (v == -1) continue; // 跳過無效字元(如正負號)
sum += v;
if (v > max_val) max_val = v;
}
bool found = false;
// 進位制 R 必須大於數字中出現過的最大值 max_val
// 因此 R-1 至少要從 max_val 開始
for (int r = max_val + 1; r <= 62; ++r) {
if (sum % (r - 1) == 0) {
cout << r << endl;
found = true;
break;
}
}
if (!found) {
cout << "such number is impossible!" << endl;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIOWwh+Wtl+WFg+i9ieaPm+eCuuWwjeaHieeahOaVuOWAvAppbnQgY2hhclRvVmFsdWUoY2hhciBjKSB7CiAgICBpZiAoaXNkaWdpdChjKSkgcmV0dXJuIGMgLSAnMCc7CiAgICBpZiAoaXN1cHBlcihjKSkgcmV0dXJuIGMgLSAnQScgKyAxMDsKICAgIGlmIChpc2xvd2VyKGMpKSByZXR1cm4gYyAtICdhJyArIDM2OwogICAgcmV0dXJuIC0xOwp9CgppbnQgbWFpbigpIHsKICAgIHN0cmluZyBzOwogICAgd2hpbGUgKGNpbiA+PiBzKSB7CiAgICAgICAgbG9uZyBsb25nIHN1bSA9IDA7CiAgICAgICAgaW50IG1heF92YWwgPSAxOyAvLyDpgLLkvY3liLbmnIDlsI/lvp4gMiDplovlp4sgKOWNs+acgOWkp+S9jeaVuOWAvOeCuiAxKQoKICAgICAgICBmb3IgKGNoYXIgYyA6IHMpIHsKICAgICAgICAgICAgaW50IHYgPSBjaGFyVG9WYWx1ZShjKTsKICAgICAgICAgICAgaWYgKHYgPT0gLTEpIGNvbnRpbnVlOyAvLyDot7PpgY7nhKHmlYjlrZflhYPvvIjlpoLmraPosqDomZ/vvIkKICAgICAgICAgICAgCiAgICAgICAgICAgIHN1bSArPSB2OwogICAgICAgICAgICBpZiAodiA+IG1heF92YWwpIG1heF92YWwgPSB2OwogICAgICAgIH0KCiAgICAgICAgYm9vbCBmb3VuZCA9IGZhbHNlOwogICAgICAgIC8vIOmAsuS9jeWItiBSIOW/hemgiOWkp+aWvOaVuOWtl+S4reWHuuePvumBjueahOacgOWkp+WAvCBtYXhfdmFsCiAgICAgICAgLy8g5Zug5q2kIFItMSDoh7PlsJHopoHlvp4gbWF4X3ZhbCDplovlp4sKICAgICAgICBmb3IgKGludCByID0gbWF4X3ZhbCArIDE7IHIgPD0gNjI7ICsrcikgewogICAgICAgICAgICBpZiAoc3VtICUgKHIgLSAxKSA9PSAwKSB7CiAgICAgICAgICAgICAgICBjb3V0IDw8IHIgPDwgZW5kbDsKICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoIWZvdW5kKSB7CiAgICAgICAgICAgIGNvdXQgPDwgInN1Y2ggbnVtYmVyIGlzIGltcG9zc2libGUhIiA8PCBlbmRsOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwp9