#include <iostream>
//#include <string>
#include <vector>
using namespace std;

int main(void){

string line;
int i, noP;
int *pebbles;
bool *available;
int open;
vector<int> opened = vector<int>();
int max;
pebbles = new int[1000000];
available = new bool[1000000];

while(true){
    max=0;
    cin>>noP;
    if(!noP)
        return 0;
    opened.clear();
    for(i=0; i<noP; i++){
        cin>>pebbles[i];
        available[i]=false;
        if(pebbles[i]>max)
            max=pebbles[i];
    }
    opened.push_back(0);
    available[0]=true;
    while(opened.size()){
        open = opened.back();
        opened.pop_back();
        for(i=pebbles[open]; i<=max+pebbles[open] && (open+i)<noP; i++)
            if(pebbles[open]+pebbles[open+i]==i && !available[open+i]){
                available[open+i]=true;
                opened.push_back(open+i);
                if(open+i+1==noP)
                    opened.clear();
                }
    }
    for(i=noP-1; i>0 && !available[i]; i--);
    cout<<i<<endl;
}

delete[] pebbles;
delete[] available;
return 0;}