#include <iostream>
#include <cmath>
#include <string>
using namespace std;
typedef long long ll;

int main() {
    ll num;
    cin >> num;
    int m_top = log(num + 1) / log(2);
	ll ans = 0;
    for (int m = m_top; m >= 2; m--) {
        ll low = 2, top = pow(num, (1. / (m - 1))) + 1;

        while (low < top) {
            ll k = (low + top) / 2;

            ll val = 0, x = 1;
            for (int i = 0; i < m; i++) {
                val = val * k + 1;
            }

            if (val > num) {
                top = k;
            } 
			else if (val < num) {
                low = k + 1;
            } 
			else {
                ans = k;
				break;
            }
        }
		if(ans != 0) break;
    }
    if(ans == 0) cout << num - 1 << endl;
    else cout << ans << endl;
}