""" https://yukicoder.me/problems/no/1312 √までみればok? それ以上は p*x + x = N (p+1) * x = N を満たす最小のp """ import sys from sys import stdin N = int(input()) for p in range(2,10**6+1): n = N rem = n % p flag = True while n: if n % p != rem: flag = False break n //= p if flag: print (p) sys.exit() for x in range(10**6,1,-1): if N % x == 0: pp = N // x print (pp-1) sys.exit()