#include using namespace std; int n,dp[20050],prime[20050]; int main(){ scanf("%d\n",&n); assert(1<=n&&n<=20000); for(int i=1;i<20050;i++)dp[i]=-1000000000,prime[i]=1; for(int i=2;i<20050;i++){ if(!prime[i])continue; for(int j=i*i;j<20050;j+=i)prime[j]=0; for(int j=20050-1;j>=i;j--)dp[j]=max(dp[j],dp[j-i]+1); } if(dp[n]<0)cout<<-1<