#include using namespace std; int main() { vector ps; ps.emplace_back(2); for (int i = 3; i <= 20000; i += 2) { for (int p : ps) { if (i % p == 0) { goto next; } } ps.emplace_back(i); next:; } int n; cin >> n; int dp[n + 1]; fill(dp, dp + n + 1, -1); dp[0] = 0; for (auto p : ps) { for (int i = n; i; i--) { if (i - p < 0) { break; } if (0 <= dp[i - p]){ dp[i] = max(dp[i], dp[i - p] + 1); } } } cout << dp[n] << endl; return 0; }