#include <stdio.h>
#include <stdlib.h>
#include <math.h>
long long max = 0;
int find(long long kam[], int velkost)
{
int i;
for (i = 0; i < velkost; i++)
{	
	if (kam[i] == 1)
		return i;
}

	return 0;
}

void zmen(long long hlavne[], long long kam[],int p, int velkost)
{

int i;
for (i = 0; i < velkost; i++)
{
if ((hlavne[p] + hlavne[i]) == (abs(i-p))) 
	{
	kam[i] = 1;
	if (i > max)
		max = i+1;
	}
}
kam[p] = 0;
}
void zmen2(long long hlavne[], long long kam[],int p, int velkost)
{

int i;
for (i = 0; i < velkost; i++)
{
if (((hlavne[p] + hlavne[i]) == (abs(i-p))) && (kam[i] != 0))
	{
	kam[i] = 1;
	if (i > max)
		max = i;
	}
}
kam[p] = 0;
}

int main()
{

while(1){
long long N;
scanf("%Ld",&N);
if (N == 0) return 0;

long long hlavne[N], kam[N];
int i;
for (i = 0; i < N; i++)
{
scanf("%Ld",&hlavne[i]);
kam[i] = -1;
}
kam[0]=1; int j;
zmen(hlavne,kam,0,N);

while ((j= find(kam,N)) != 0)
{
zmen2(hlavne,kam,j,N);
}



printf("%Ld\n",max);
max = 0;
}
return 0;
}