import math N=int(input()) div=[] for d in range(1,1000000): if N%d==0: div.append(d) div.append(N//d) ans = N + 1 for d in div: n = N // d # 1 + a + ... + a^{L-1} for L in range(1,60): ok = n + 1 if L == 1 else (1+int(math.pow(n, 1/(L-1)))) ok = min(ok, n + 1) ng = d while ok - ng > 1: m = (ok + ng) // 2 if (m**L - 1) / (m - 1) >= n: ok = m else: ng = m if ok > d and (ok**L - 1) % (ok - 1) == 0 and (ok**L - 1) // (ok - 1) == n: ans = min(ans, ok) print(ans)