n = int(input()) ans = n + 1 for i in range(1, int(n ** 0.5 + 3)): if n % i != 0: continue s = n // i for j in range(2, 41): lower = i upper = min(int(s ** (1 / (j - 1)) + 3), ans) if lower + 1 >= upper: break while lower + 1 < upper: p = (lower + upper) // 2 sm = (p ** j - 1) // (p - 1) if sm == s: ans = p break if sm < s: lower = p else: upper = p print(ans)