#include #include using namespace std; const int N = 4510, M = 10200000; int n, a[N], b[M], cnt, idx; int main() { for (int i = 1; i < N; ++i) { a[i] = i * (i + 1) / 2; } for (int i = 1; i < M; ++i) b[i] = 3; for (int i = 1; i < N; ++i) { for (int j = i; j < N; ++j) { if (a[i] + a[j] >= M) break; b[a[i] + a[j]] = 2; } } for (int i = 1; i < N; ++i) b[a[i]] = 1; scanf("%d", &n); cnt = b[n]; for (int i = 1; i < N && n - a[i] >= 1; ++i) { cnt = min(cnt, b[n - a[i]] + 1); } printf("%d\n", cnt); return 0; }