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