import sys from random import seed, randrange def modpow(base, power, mod): result = 1 while power > 0: if power & 1 == 1: result = (result * base) % mod base = (base * base) % mod power >>= 1 return result def isPrime(n): if n % 2 == 0: return False def MR_core(d, a, s = 1): if s == 1: return MR_core(d >> 1, a, 2) == n elif s == 2: if d & 1: m = MR_core(d >> 1, a, 3) s = m * m % n * a % n return n if s == n - 1 or s == 1 else s else: m = MR_core(d >> 1, a, 2) if m == n: return n else: s = m * m % n return n if s == n - 1 else s elif s == 3: if d == 0: return 1 else: m = MR_core(d >> 1, a, 3) if d & 1: return m * m % n * a % n else: return m * m % n k = 3 return all(MR_core(n - 1, randrange(2, n)) for i in range(k)) n = input() umekomi = [ 1, 1, 2, 3, 3, 5, 3, 7, 7, 7, \ 5,11,11,13, 7, 7, 7, 8, 8,19, \ 19, 7, 7,23,23, 8, 8, 8, 7, 8] if n <= 30: print umekomi[n-1] sys.exit() m = 8 while True: if isPrime(m+1) == False: if n%m != 1 or isPrime(n-m) == False: print m sys.exit() m += 2