#include using namespace std; typedef long long ll; #define all(x) (x).begin(),(x).end() const int mod=1000000007,MAX=100003,INF=1<<30; int prime[MAX];//i番目の素数 bool is_prime[MAX+1]; void sieve(int n){ int p=0; for(int i=0;i<=n;i++){ is_prime[i]=true; } is_prime[0]=is_prime[1]=false; for(int i=2;i<=n;i++){ if(is_prime[i]){ prime[p++] = i; for(int j=2*i;j<=n;j+=i){ is_prime[j] = false; } } } } int main(){ int N;cin>>N; vector S; for(int i=0;i=p;i--){ if(dp[i-p]==-1) continue; dp[i]=max(dp[i],dp[i-p]+1); } now++; } if(dp[N]==-1) cout<<-1<