#include using namespace std; #define repd(i,a,b) for(int i=a;i>a #define cint2(a,b) int a,b;cin>>a>>b #define cint3(a,b,c) int a,b,c;cin>>a>>b>>c typedef long long ll; typedef pair P; const int INF=100000000; const int dx[4]={ 0, 1, 0,-1}; const int dy[4]={ 1, 0,-1, 0}; //--------------------------------------// int n; vector primes; bool isPrime[2500]; int dp[20001][2500]; int main(){ cin>>n; memset(isPrime,1,n); isPrime[0]=isPrime[1]=false; repd(i,2,n){ if(isPrime[i]){ primes.pb(i); for(int j=i;j=primes[j-1]&&dp[i-primes[j-1]][j-1]!=-1) dp[i][j]=max(dp[i][j],dp[i-primes[j-1]][j-1]+1); } // debugarr(dp,n,primes.size()); cout<