/* -*- coding: utf-8 -*- * * 320.cc: No.320 眠れない夜に - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int MAX_N = 80; /* typedef */ typedef long long ll; /* global variables */ ll fs[MAX_N + 1]; /* subroutines */ /* main */ int main() { int n; ll m; cin >> n >> m; fs[0] = 0, fs[1] = fs[2] = 1; for (int i = 3; i <= n; i++) fs[i] = fs[i - 1] + fs[i - 2]; //printf("fs[%d]=%lld\n", n, fs[n]); int ans; if (fs[n] < m) ans = -1; else if (fs[n] == m) ans = 0; else { ans = 0; ll d = fs[n] - m; for (int k = n - 2; d > 0 && k > 0; k--) if (d >= fs[k]) { //printf("d=%lld, fs[%d]=%lld\n", d, k, fs[k]); ans++, d -= fs[k]; } } printf("%d\n", ans); return 0; }