// R38706118 #include using namespace std; long long a[10000000]; long long dfib(long long x, long long m) { if (a[x] != -1) { return a[x]; } if (x == 0) { a[x] = 0 % m; return 0; } if (x == 1) { a[x] = 1 % m; return 1; } a[x] = (dfib(x - 1, m) + dfib(x - 2, m)) % m; return a[x]; } int main() { long long m; memset(a, 0xff, sizeof(a)); cin >> m; for (int i = 2; i < m * m; i++) { // cout << i << ' ' << dfib(i, m) << endl; if (dfib(i, m) == 0 && dfib(i + 1, m) == 1) { cout << i; break; } } return 0; }