#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int ll; typedef pair P; const ll INF=1e15; const int MAX=10001; vector prime; bool isprime[MAX]; void sieve(){ for(ll i=3; i>m; cin>>n; int c[21]; for(int i=1; i<=n; i++) cin>>c[i]; ll dp[21][10001]; for(int i=0; i<=n; i++){ fill(dp[i], dp[i]+m+1, -INF); dp[i][0]=0; } for(int i=1; i<=n; i++){ for(int j=0; j<=m; j++){ dp[i][j]=dp[i-1][j]; if(j>=c[i]) dp[i][j]=max(dp[i][j], dp[i][j-c[i]]+1ll); } } sieve(); ll ans=0; for(int i=0; prime[i]=0) ans+=dp[n][m-prime[i]]; } ll mx=0; for(int i=0; i<=m; i++){ mx=max(mx, dp[n][i]); } ans+=mx; cout<