#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
int pole[300001];
for (int i = 0; i <= n; i++) {
cin >> pole[i];
}
if (pole[0] == 1 || pole[n] == 1) {
cout << -1 << "\n";
return 0;
}
int fib[50];
fib[0] = 1;
fib[1] = 2;
int ilosc = 2;
while (true) {
fib[ilosc] = fib[ilosc - 1] + fib[ilosc - 2];
if (fib[ilosc] > n) break;
ilosc++;
}
int dp[300001];
for (int i = 0; i <= n; i++) dp[i] = -1;
dp[0]=0;
for (int i = 0; i <= n; i++) {
if (dp[i] == -1) continue;
for (int j = 0; j < ilosc; j++) {
int nastepny = i + fib[j];
if (nastepny <= n && pole[nastepny] == 0) {
if (dp[nastepny] == -1 || dp[nastepny] > dp[i] + 1) {
dp[nastepny] = dp[i] + 1;
}
}
}
}
cout << dp[n] << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgaW50IG47CiAgICBjaW4gPj4gbjsKICAgIGludCBwb2xlWzMwMDAwMV07CiAgICBmb3IgKGludCBpID0gMDsgaSA8PSBuOyBpKyspIHsKICAgICAgICBjaW4gPj4gcG9sZVtpXTsKICAgIH0KICAgIGlmIChwb2xlWzBdID09IDEgfHwgcG9sZVtuXSA9PSAxKSB7CiAgICAgICAgY291dCA8PCAtMSA8PCAiXG4iOwogICAgICAgIHJldHVybiAwOwogICAgfQogICAgaW50IGZpYls1MF07CiAgICBmaWJbMF0gPSAxOwogICAgZmliWzFdID0gMjsKICAgIGludCBpbG9zYyA9IDI7CiAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgIGZpYltpbG9zY10gPSBmaWJbaWxvc2MgLSAxXSArIGZpYltpbG9zYyAtIDJdOwogICAgICAgIGlmIChmaWJbaWxvc2NdID4gbikgYnJlYWs7CiAgICAgICAgaWxvc2MrKzsKICAgIH0KICAgIGludCBkcFszMDAwMDFdOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbjsgaSsrKSBkcFtpXSA9IC0xOwogICAgZHBbMF09MDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IG47IGkrKykgewogICAgICAgIGlmIChkcFtpXSA9PSAtMSkgY29udGludWU7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBpbG9zYzsgaisrKSB7CiAgICAgICAgICAgIGludCBuYXN0ZXBueSA9IGkgKyBmaWJbal07CiAgICAgICAgICAgIGlmIChuYXN0ZXBueSA8PSBuICYmIHBvbGVbbmFzdGVwbnldID09IDApIHsKICAgICAgICAgICAgICAgIGlmIChkcFtuYXN0ZXBueV0gPT0gLTEgfHwgZHBbbmFzdGVwbnldID4gZHBbaV0gKyAxKSB7CiAgICAgICAgICAgICAgICAgICAgZHBbbmFzdGVwbnldID0gZHBbaV0gKyAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBkcFtuXSA8PCAiXG4iOwogICAgcmV0dXJuIDA7Cn0=