N = int(input()) memo = {} def get_primes(n): numbers = set(range(n, 1, -1)) primes = [] while numbers: p = numbers.pop() primes.append(p) numbers.difference_update(set(range(p*2, n+1, p))) return primes P = get_primes(N) dp = [-1] * (N + 1) dp[0] = 0 for p in P: for j in range(N, -1, -1): if p + j <= N and dp[j] != -1: dp[j + p] = max(dp[j + p], dp[j] + 1) print(dp[N])