#include using namespace std; typedef long long ll; int main() { int n; cin>>n; bool isp[n+1]; fill(isp,isp+n+1,true); isp[0]=isp[1]=false; vector ps; for (int i=2;i<=n;i++) if (isp[i]) { ps.push_back(i); for (int j=i+i;j<=n;j+=i) isp[j]=false; } int dp[n+1]; fill(dp,dp+n+1,-1); dp[0]=0; for (int p:ps) for (int j=n-p;j>=0;j--) if (dp[j]!=-1) dp[j+p]=max(dp[j+p],dp[j]+1); cout<