n = int(input()) prime = [] is_prime = [False] * 2 + [True] * (n - 1) def get_val(): for i in range(2,n+1): if is_prime[i]: prime.append(i) for j in range(i * i, n + 1, i): is_prime[i] = False get_val() dp = [0] + [-1] * n for x in prime: for i in range(n,x,-1): if dp[i-x] == -1: continue dp[i] = max(dp[i], dp[i-x] + 1) print(dp[n])