module main; // https://yukicoder.me/problems/no/320/editorial より // フィボナッチ数列 import std; void main() { // 入力 int N; long M; readln.chomp.formattedRead("%s %s", N, M); // 答えの計算と出力 auto fib = recurrence!("a[n-1] + a[n-2]")(1L, 1L).take(N).array; if (M == fib[N - 1]) { writeln(0); return; } if (M > fib[N - 1]) { writeln(-1); return; } int ans = 0; long D = fib[N - 1] - M; while (D > 0) { foreach_reverse (i; 0 .. N - 1) { if (D >= fib[i]) { D -= fib[i]; ans++; break; } } } writeln(ans); }