#約数全部 def Divisors(N): N=abs(N) L,U=[],[] k=1 while k*k <=N: if N%k== 0: L.append(k) if k*k!=N: U.append(N//k) k+=1 return L+U[::-1] def check(N,r): p=N%r while N: if N%r!=p: return False N//=r return True #================================================ N=int(input()) D=Divisors(N) X=N+1 for a in D: M=N//a B=Divisors(M-1) for p in B: if p>=X: break if 2<=p and check(N,p): X=min(X,p) print(X)