#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")