#define _GLIBCXX_DEBUG #define ll long long #include using namespace std; using Graph = vector>; int main(){ int N; cin >> N; vector dp(N*3, -1); dp[0] = 0; for(int i = 2; i <= N; i++){ bool flag = true; for(int j = 2; j*j <= i; j++){ if(i%j == 0){ flag = false; break; } } if(flag){ for(int j = N; j >= 0; j--){ if(dp[j] != -1){ dp[j+i] = max(dp[j]+1, dp[j+i]); } } } } cout << dp[N] << endl; }