#include <iostream>
#include <vector>
using namespace std;
int Fibonacci(int n) {
if (n == 0) return 0;
if (n == 1) {
return 1;
}
if (n >= 2) {
return Fibonacci( n - 1) + Fibonacci( n - 2);
}
return 0;
}
int revGoFibonacci(int n) {
return 0;
}
int main() {
int N;
cin >> N;
//cout << "N=" << N << endl;
//int F = Fibonacci(n);
vector<int > FF(100, 0);
FF[0] = 0;
FF[1] = 1;
int step = 0;
bool isOK = false;
for (int i = 2; i < 500; i++) {
FF[i] = FF[i - 1] + FF[i - 2];
//cout << "i=" << i << endl;
//cout << " FF[i] =" << FF[i] << endl;
if (N >= FF[i - 1] && N < FF[i]) {
int leftFF = N - FF[i - 1];
int rightFF = FF[i] - N;
if (leftFF <= rightFF) {
step = leftFF;
isOK = true;
break;
} else {
step = rightFF;
isOK = true;
break;
}
}
}
//int reF = revGoFibonacci(N);
if (isOK) {
cout << step << endl;
} else {
cout << -1 << endl;
}
return 0;
}
// 64 位输出请用 printf("%lld")