import sympy N = int(input()) # 2~29の範囲内の素数を返すジェネレータ p_g = sympy.primerange(2, N+1) p_list = list(p_g) def min_num_part_sum(a, A): # 初期化 N = len(a) inf = float(-100) dp = [[inf for i in range(A + 1)] for j in range(N + 1)] dp[0][0] = 0 # DP for i in range(N): for j in range(A + 1): if a[i] <= j: # i+1番目の数字a[i]を足せるかも dp[i + 1][j] = max(dp[i][j - a[i]] + 1, dp[i][j]) else: # 入る可能性はない dp[i + 1][j] = dp[i][j] return dp[N][A] print(min_num_part_sum(p_list,N))