#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; ll N; int main() { cin >> N; for(int k = 2; k < 100; ++k) { deque dq; for(ll i = 1; i < 1000; ++i) { ll sum = 0; if(i < k) continue; else if(i == k) sum = 1; else { for(auto v : dq) sum += v; } if(sum == N) { cout << k << endl; return 0; } else if(sum > N) { if(dq.size() < k) { cout << -1 << endl; return 0; } else break; } dq.push_back(sum); if(dq.size() > k) dq.pop_front(); } } }