#include using namespace std; typedef long long ll; #define rep(i, n) for(ll i = 0, i##_len = (n); i < i##_len; i++) #define reps(i, s, n) for(ll i = (s), i##_len = (n); i < i##_len; i++) #define rrep(i, n) for(ll i = (n) - 1; i >= 0; i--) #define rreps(i, e, n) for(ll i = (n) - 1; i >= (e); i--) #define all(x) (x).begin(), (x).end() #define rall(x) (x).rbegin(), (x).rend() #define sz(x) ((ll)(x).size()) #define len(x) ((ll)(x).length()) #define endl "\n" ll is_fib(const vector &fib, ll v) { auto it = lower_bound(all(fib), v); if ((it == fib.end()) || (v != *it)) return -1; return (it - fib.begin()); } int main() { cin.tie(0); ios::sync_with_stdio(false); // ifstream in("input.txt"); // cin.rdbuf(in.rdbuf()); vector fib(80); fib[0] = 1; fib[1] = 1; reps(i, 2, sz(fib)) { fib[i] = fib[i - 1] + fib[i - 2]; } vector a(5); rep(i, 5) cin >> a[i]; reverse(all(a)); ll idx = is_fib(fib, a[0]); if (idx == -1) { cout << 0 << endl; return 0; } ll st = 1; if ((a[0] == 1) && (a[1] == 1)) { st++; } else if (a[0] == 1) { idx++; } rep(i, 5 - st) { if (fib[idx + st + i] != a[i + st]) { cout << (i + st) << endl; return 0; } } cout << 5 << endl; return 0; }