#include <cstdio>
#include <queue>
#include <set>
#include <cmath>

using namespace std;

int N, i, cur, res;
int pebbles[1000000];

set<int> l[1000000];
set<int> p[1000000];

queue<int> q;
set<int> s;

int main() {
	while(scanf("%d", &N) == 1 && N != 0) {
		for(i=0;i<N;i++) { l[i].clear(); p[i].clear(); }
		for(i=0;i<N;i++) { 
			scanf("%d", &pebbles[i]);
			if (i+pebbles[i] < N)  l[i+pebbles[i]].insert(i-pebbles[i]);
			if (i-pebbles[i] >= 0) p[i-pebbles[i]].insert(i+pebbles[i]);
		}
		
		q.push(pebbles[0]);
		s.insert(pebbles[0]);
		while(!q.empty()) {
			cur = q.front(); q.pop(); 
			if(!p[cur].empty()) {
				for (auto it : p[cur]) { if (it < N && s.find(it) == s.end()) { q.push(it); s.insert(it); } }
				for (auto it : l[cur]) { if (it >= 0 && s.find(it) == s.end()) { q.push(it); s.insert(it); } }
			}
		}

		res = 0;
		for (i=N-1;i>=0;i--) {
			if (s.find(i-pebbles[i]) != s.end()) {
				res = i;			
				break;
			}
		}
		printf("%d\n", res);
		s.clear();
	}
	return 0;
}