N=int(input()) p=[True]*(N+1) p[0]=p[1]=False for i in range(2,N+1): for j in range(i*i,N+1,i): p[j]=False prime=[] for i in range(N+1): if p[i]: prime.append(i) dp=[-1]*(N+1) dp[0]=0 for u in prime: for i in range(N,-1,-1): if u+i<=N and dp[i]!=-1: dp[u+i]=max(dp[u+i],dp[i]+1) print(dp[N])