#include using namespace std; int n; bool vis[200005]; int prime[200005],sum[200005],m; void init(int n){ vis[0]=vis[1]=1; for(int i=2;i*i<=n;i++){ if(!vis[i]){ for(int j=i*i;j<=n;j+=i){ vis[j]=1; } prime[m++]=i; } } for(int i=0;i100000){ break; } sum[i+1]=sum[i]+prime[i]; } } int main(){ // freopen("prime.in","r",stdin); // freopen("prime.out","w",stdout); int n; cin>>n; init(100000); if(n<2){ cout<<-1<=max(1,tmp-2);k--){ int delta=n-sum[k]; if(delta==0){ res=k; break; } bool flg=false; for(int i=0;i=300000){ continue; } if(!vis[tmp] && tmp>prime[k-1]){ res=k; flg=1; break; } } if(flg){ break; } if(k<2){ continue; } if(!(delta&1)){ if(k<3){ continue; } bool flg=0; for(int i=1;i300000){ break; } int q=t-p; if(q>300000){ continue; } if(!vis[p] && !vis[q]){ flg2=1; break; } } if(flg2){ res=k; flg=1; break; } } if(flg){ break; } } if(flg){ break; } }else{ bool flg=false; for(int i=1;i300000){ break; } int q=t-p; if(q>300000){ continue; } if(!vis[p] && !vis[q]){ flg2=1; break; } } if(flg2){ res=k; flg=1; break; } } if(flg){ break; } } } cout<