#include #include using namespace std; using i64 = long long; int main(void) { int n; scanf("%d", &n); if(n == 1 || n == 4 || n == 6) { puts("-1"); return 0; } vector is_prime(n+1, true); is_prime[0] = is_prime[1] = false; int sq = sqrt(n); for(int i=2; i<=sq; ++i) { if(is_prime[i]) { for(int j=i*i; j<=n; j+=i) { is_prime[j] = false; } } } vector primes; for(int i=2; i<=n; ++i) { if(is_prime[i]) { primes.push_back(i); } } int m = primes.size(); vector> dp(m+1, vector(n+1, -1)); // dp[m+1][n+1] dp[0][0] = 0; for(int i=0; i