#include using namespace std; int n,dp[20000+1]={0}; bool p[20000+1]; int main(){ cin >> n; fill(p,p+sizeof(p),true); p[0]=false; p[1]=false; for(int i=3;i<=n;i++) for(int j=0;j*j<=i;j++) if(p[j]) if(i%j==0) p[i]=false; for(int i=1;i=0;j--) if(j+i<=n && dp[j]!=-1) dp[j+i] = max(dp[j]+1, dp[j+i]); cout << dp[n] << endl; return 0; }