#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;
}